skysight-inc/HackerNews huggingface dataset:
I haven't used Google for anything but search in years. It just seemed unnecessary. Mail is on Thunderbird connected to an IMAP server. Browser is Firefox. Phone is Android minus all the Google stuff, plus FDroid. Phone mail is K-9 mail. Maps are on ZNavi. Location provider is Mozilla. Software development and docs are on Github. Backups are on iDrive. Videos are uploaded to Vimeo. OS is Ubuntu LTS. Sometimes I use Discord.

A few months back, I switched my default browser to Bing, because Google was returning too many ads above the fold.

No big deal. Just fewer headaches without Google and Microsoft.
When I first read the title, I understood it more philosophically. As in––why is most of outer space just endless, indistinguishable dust, while here on Earth there's just so much _stuff_! There's nothing simple about reality at all. It's boundlessly complex and intricate for apparently no reason at all. It seems intuitively simpler that less "stuff" should exist. Another way of putting it: even if a supreme being did create the universe, why would it go to so much trouble to make sure that dust gradually accumulates on the top of my refrigerator?

EDIT: Going a step further, what's really weird is just how different human beings are from everything else. Compare a McDonald's bathroom stall to the surface of the moon. How can these things coexist? They don't go together. It's like a giant accident. Like someone spilled pink nail polish on the Mona Lisa.
Isn't a reasonable solution to pay google for gsuite? It's $50* per year or something? Then the "there's nobody to phone and no appeal and data could just be _gone_" concern goes out the window.

*edit: $6 per month so $72 per year
1) NNT meta analysis (one of a very large body of literature): https://www.thennt.com/nnt/statins-persons-low-risk-cardiova...

2) Best I could find in 2 minutes. Will look for the studies. https://www.scientificamerican.com/article/gut-second-brain/
On one project we ended up with a series of feature that fell into groups of threes and we kept trying to make the 2nd feature in the series generic, and time after time #3 was a rewrite and significant rework of #2. So any extra time spent on #2 was time wasted.
Just curious, are you joking, or are you serious?
I use fastmail with my own domain, so it’s always service@domain.tld. I only need to create aliases if I have to write them so the from/sender is correct. And I love how fast their webmail is compared to the slowness of gmail.
Agreed. A half-and-half course that was half degree, half practical would be pretty ideal. Some of these do exist, but they tend to be small experimental courses that not many people take.

I would: I don't think studying for 3 years upfront makes sense for most people. It would be better to spread learning out more.
I think the key here is you have tried the other options, and importantly - you clearly know how to set those other services up if need be. For many if not most people, that would be entering the wild unknown.
Rewriting code is fine, but you really better know what you are doing. Doing it without first talking to the engineer is insanely risky.
I believe they are suboptimal for the same reason that lexical binding won over dynamic binding in language design: it is easier to reason with immutable bindings, and to maintain as little global state as possible.

The work done in Nix and Guix is interesting in this regard.
The problem GP was raising is on the other half of Optional: when you do finally need an int.

Say, you want to do

arr[*increment(maybeInt)] //error: can't dereference Optional<int>

Now, if you as a programmer don't think increment(maybeInt) can actually return None in your particular case, you will probably do the minimal work to convince the compiler to let it go, say

matchOptional(
increment(maybeInt),
someInt => {return arr[someInt]},
() => { /*never happens*/ return 0; })

(using a slightly simpler notation that your version, since I'm on mobile)

Now, if you were wrong and you do get a Nothing, instead of seeing a nice stack trace, you have an absurd 0 running forward. You could improve this using an assert() but this is what managed languages already do with the NullPointerException&friends.

The more interesting thing to show is all the code that does not deal with optional and that is now magically free of any possibility of null errors. But the programmer is still responsible for correctly treating the moment they need to go from optional values to non-optional, and here Optional is essentially just more in-your-face than null (which is valuable, don't get me wrong).

The only example I know of where a language feature truly completely eliminates a category of errors is managed memory, which does not replace memory errors with any other more-or-less equivalent error case.

I personally very much doubt NULL is a significant source of errors in managed memory languages. It's not nothing, but they are some of the easiest bugs to track down.
You can require the clerk to note the document ID to avoid bribery.
If by "Apple is trying to sabotoge" you mean "Apple has no plans to support", https://webkit.org/blog/8482/web-high-level-shading-language... goes into some detail about why SPIR-V bytecode isn't a good fit for them specifically, and reasonable (IMHO) arguments for why SPIR-V isn't a good fit for the web in general.

As SPIR-V is an intermediate language, I am curious how you imagine this would affect you. Mind elaborating?
Kudos for some real journalism. I've had enough climate-cult news for a lifetime. So it's nice to see an actual news story.
"It isn't magic!" mantra is often heard in Go apologetics, but every time I see it, it occurs to me that Go's definition of "magic" is somewhat akin to a 15th century peasant seeing a lightbulb. Stuff like exceptions or error types isn't magic - they have been around for a long time, they're well understood, and they have significant advantages.
Already handled in NixOS by Nix.
Also these psychological changes happen because these hormones ultimately go on to affect the brain
He switched to Fastmail first, then to Nextcloud?
Because a thing that programmers tend to call "design" directly impacts how a user is able to interact with the tooling, obviously? Are you seriously asking "How could a thing like 'core design of the system' ever impact how someone uses it?" or are you just trolling for the sake of it?

As a real example, I used to be the maintainer of a major project that had long running stable branches. This means I needed to often cherry pick bugfixes from one place to another, but cherry picks are often difficult because they can rely on prior changes you haven't yet picked. In a system like Git, you have to cherry pick things in chronological order in order to replicate each "snapshot" of the history that the original changes came from, so the merge algorithm can figure it out. What change do you start from? Who knows! You have to find the first change that can be merged properly, or by hand, and work your way from there. You effectively have to hold the hand of the tool in cases like this.

In systems like Darcs or Pijul, that does not happen. They are always able to keep track of dependencies between patches, and so a "cherry pick" naturally implies picking change A, and all dependencies of A that are not yet available. There is no notion of having to run multiple commands or whatever; it's completely transparent. From there you can either A) accept the dependent changes or B) do surgery, for example, if you need to more carefully backport things. A) is the common case in the vast majority of uses, in my experience. Where as in Git, after a long enough time, almost any uses of 'cherry pick' will immediately fail and require you to start digging and picking out historical changes -- in Darcs, it will keep working just fine, even for dozens or a hundred dependent changes you need. The default features of the tool and their UX matter a lot, here.

If you not only can't understand how different core design choices -- like the ones in Pijul or Darcs -- can impact how a user uses a tool, but even refuse to admit that a tool could ever be used any other way: that alone is a great indictment of Git's complete and total monoculture, and precisely why these tools need to keep existing. Then again, computer programmers love having stockholm syndrome and hate reading things, so maybe it doesn't matter.

Here is a good, short video explaining the theoretical underpinning of Darcs and how they impact the user (and an old side project, "Camp", that was planned to eventually become Darcs 3). It's over a decade old and just as relevant as it ever was: https://www.youtube.com/watch?v=iOGmwA5yBn0
I have dual 27 inch 4K. I sit at my desk, and it is quite OK for general work and movies etc. If I increased this to 40 inches I might find too much head travel for my liking. Dual 27" is about my max. I might add a 40" 4K for movies and position it as the left hand display and move it back 6 inches or so. I first went to dual trinitron displays in 1985-6. These were huge, depth-wise and I upgraded to 24" in the late 80's and then went to flatscreen of the same size and to 27 " 1200 x 1024 (I think).
I deal in maps and geological work, so I always pushed the envelope. I do not think I will go over 4K for a while. These 8K units that are looming - I do not think I can actually make effective use of them.
> The whole "centralized, trusted repository that has all your apps" system is wrong at a fundamental level.

I've done it both ways. Centralized works a LOT better. It's not even close.

You get a more stable system, and you get security bugs fixed faster, and more reliably.

What you lose is access to the "latest and greatest", because it takes time for the new stuff to filter in. And that's OK.
> Rust does not have shared libraries, so a Rust [security] update means all rust binaries must be completely rebuilt.

What's the concern with that, exactly? OpenBSD is a security-focused distribution, do they not do reproducible builds?
In 2009 I was building an enterprise medical imaging SaaS for hospitals, and we would constantly come across hospital IT admins who were adamantly against trusting a cloud vendor with their sensitive healthcare data - even one that's audited, security-checked and whose sole responsibility is to take care of these images.

We always thought it was a joke that these guys questioned us, when we knew how bad their internal security practices were. At some point around 2011-2012 we seized on the idea that holding your images inside of the hospital's four walls was a liability for them, and not a point of pride.

So, not at all surprised about this, nor about the complete lack of security practices at many of these healthcare IT vendors.
If you think rust eliminates the need to think about it in the way that python does, I don’t know what to tell you.
`let s:String` is not the same as `let s:String?` in Swift, at least. (Nor in TypeScript)
It’s somewhat of a one-stop cloud service, only (usually) selfhosted. Many prople use it mainly as Dropbox/One Drive/Google Drive replacement which works great, but depending on what apps you install (some of those might be default apps, others community provided), you get a mastodon client, caldav, carddav, calendar, notes, webmail client, video chat, office document editing, media viewer and other similar stuff. I didn’t yet manage to get it working, but there is even a plugin that supports fulltext scan search via tesseract OCR.

All of these things work just as well for teams/orgs (including LDAP/SSO) as they do for a single user
AI trained to spot brain tumours faster than humans
Accusing me (op, not parent) of selling proprietary junk and not even checking makes you the FUDster.

Everything we do is Open Source.

Get your facts straight.

Yes, the NSA really did use backdoor access to servers to spy on millions of people.

Snowden.

So use better security, like real cryptography.
And what about Mr. Fucks, the fast food worker with no network to get his issues in front of a Lyft employee? He's probably just unable to use the service.
You clearly don’t know Paris.
Not necessarily. Me and a friend both taught ourselves, and made projects together (games, websites, etc). I guess we partly taught each other, but there was no expert or teacher involved.

Besides, self-taught programmers have to work with others as soon as they get their first job.
It is, which is why you want to be conservative. If the duplicated code is obviously supposed to be identical, then predicting the future should be trivial. If it's not obvious, then it's a question of "can I conceive of a reason why I'd want to update one and not the others?". And if the answer is unclear, wait a while and see if anything comes up.
> The point of Go's error handling is that it isn't magic.

The problem is first, that sum types are also not magic. There is nothing special about the error type or value in a `Either<T, Err>`. Go's type system is just too crappy to make such things, or make good use of them even after you tried to shove them into an interface{}.

The second problem is that Go's error values, like every error handling system that pretends it doesn't need sum types, have picked up more magic (%w) or impacted the usability of other interfaces (context.Err, separate error channels) bit by bit.
Semver is not a given in practice. Many libraries haven't adopted it, some of those that claim to break things in practice, and the very definition of a "breaking change" can mean different things - sometimes depending on the consumer (this is especially true for cross-language interactions).
I similarly wanted lower hassle, but went in a different direction of just moving routing back to a full amd64 box running Debian. Now all tinkering is standard configuration, will cleanly carry across upgrades, and lives in git.

I still use OpenWRT/DD-WRT on a few standalone access points, because I'd rather have a standard webui than dealing with manufacturer idiosyncrasies. Although when it's upgrade time I'll be tempted to move further in the amd64/hostapd direction.
We don't know what Epstein and his backers were after. Maybe Seth Lloyd had influence over someone or some other leverage they wanted. It definitely warrants further investigation though.
Wikipedia is not an original source for research. It just references other sources in their text, which is why researchers cringe if the majority of your sources is based on Wikipedia unless for good reason.
Can they not backport the patch to the existing version of Firefox?
In an idealized sense, sure. But not for a practical situation.

SMS as an authentication factor weakens the security because of all of the additional behaviors associated with the account provider which are inescapable.
If you’re going to do this, make sure you still hash the client’s hash output on the server (you can use SHA-2 in this case since the client’s hash output will effectively be high-entropy if salted). Otherwise you will be vulnerable to a “pass the hash” attack where an attacker in possession of your stored password hashes simply passes the hash to login.
> they don't really improve upon anything meaningful both of those have had more issues than Firefox in the past.

Please, prove it.
> this situation hasn't improved much in twenty years

It's gotten much worse. Now you have iOS, Android, Windows, Mac, wed, and Linux(?). In 2000, you had Windows. You couldn't do anything interesting on mobile, Web 2.0 (cringe) wasn't a thing, and Mac's market share was about 3%.
I get md5 is pretty weak now, but what's wrong with sha-256 and a salt?
>copying implementation code vs copying an API

You said code. Not implementation code.
Yout could collect biodegradable trash from the same city, compost it and help change the soil structure.
BSD ports tree can be thought of as versioned as a whole, and packages are basically a snapshot of one particular state of it. If you update one port, and it's a dev dependency for other ports, their packages will reflect that.
Yeah but if we use services from multiple companies we discourage monopoly and encourage competition.
The point of this article is to switch from one Google for a lot of services to a disparate group of providers for same services... if one of the service providers goes away, or is no longer palatable, only the service they provide needs to be relocated.

Google can suspend your account and the 20-30 things you depend on them can go away (or, at least, be unavailable in a customized fashion based on your own data). That's less of a risk if you use different providers for different services.
Isn't programming all fundementally similar too? Ok, there are a few patterns you need to learn (functional, OOP, etc), and domain specific stuff. But that's also true of physical construction. Knowing how to build stairs is only going to get you so far if you want to build a wardrobe, and probably won't help much at all if you want to build a brick wall.
Soil salinization as a result of unsustainable farming practices messing up the water table are one example of life not just finding a way.
His argument is that since a cryptosystem has a set of different algorithms, each of which could compromise the whole system, the number of rounds should be chosen to match the margins across the primitives used, since strengthening one primitive does not improve the overall margins of the system.

Specifically at the end of the paper he argues that the choice of AES rounds is close to reasonable (and warrants little round reduction), and that ChaCha8 matches a reasonable number of rounds on AES (yielding a substantial 2.5x improvement in throughput vs. ChaCha20).

Following from these conclusions, I guess you could say that ChaCha12 is already quite ludicrously good, so ChaCha20 is downright wasteful. Not totally sure I agree yet with the specific numbers, but he makes a good point.

The paper also includes some helpful advice for those attempting to read cryptanalysis papers.
What about google voice? I've noticed a lot of sites block it, but it seems as safe as email for 2fa.
The trick I’ve found for using the 40” as a monitor is just to sit further back from it - I have a very deep desk, such that the monitor fills approximately the same field of view as a 32” monitor would at normal distance.
Do you have a link to the recent reddit thread?
I also dislike modern design, but I dislike it because of how boring and meaningless it is. Architecture's a good example: brutalism conveys meaninglessness in a heavy-handed way, whereas modern architecture does it effortlessly. Smartphones represent the pinnacle of modern design: "This is a plain, perfect geometric figure, nothing more. It was not crafted by anything as messy and complex as human dreams, nor is it tainted by any human story or aspiration. Its existence is fundamental, inexorable."
I have a few PCs running Windows 10 that are older than 5 years. As long as they have SSDs and you're not gaming, they're still plenty fast, even for modern websites.
There's no way you can know it was a conscious attempt to do anything. The most one can say is that it's a value judgement about Parisians now versus then - and there's nothing wrong with saying something about that.
As a preventative measure, I write some tests for my tests. Also in TDD style of course. And on a very rare occasion, I have to write a test for those tests as well.
Python 2/3 is not a representative example, because it's actually designed to be installed side-by-side by the authors. Many libraries and apps on Unix are not.

NixOS changes a lot of things to make it all work. If you're willing to pay that tax for the sake of package management, great! People who use BSDs generally aren't.
This advice on the Tour Maine-Montparnasse reminds me of my advice to people visiting New York City:

- Touring the Statue of Liberty is a great experience, but if you just want to see it, then the Staten Island Ferry has a great view of it, and it's free to and from Staten Island

- The view from the Empire State Building is amazing, but if you instead go to the top of 30 Rockefeller Plaza, then you get to see the Empire State Building and Chrysler Buildings, and in general get a better experience.
except now it has actually been true for years.
clock rates aren't increasing.
advances in performance have been only from things that are tricky for developers to efficiently leverage (cache, simd, more cores). We need developers who understand these new low level details as much now as we needed that kind of developer in the past.
I hope something like that is available in the future! I'm so glad I read this today because my lazy voice almost convinced me I don't need the gym.
> Even if the function is long it's pretty easy to skip over the irrelevant parts.

> Overall the tradeoff is generally worth it though, because you only need to care about one case at a time.

Which part is irrelevant? As a programmer, I don't generally know which value `object` has, so if I need to understand the whole statement, I need to look at every case, so I often need to check whether they are identical or slightly different.

Duplicate code like this is a well-known source of bugs, one of the cases most often highlighted by static analysis tools.
Tests always have bugs, it's just that you don't know about the edge cases yet.
The gantry moves around on the cables held by the pylons on the edges. If it were a transmitter, the beam of radio waves would shoot out in a different direction based on what part of the surface it was illuminating. However, the really clever thing about FAST is that the surface is not just a passive metal net like Arecibo, but an active surface of triangular panels. The panels reform the normally spherical surface into a parabola. So you can imagine the surface deforming as the gantry shuttles overhead to make the correct optical surface. This is pretty hard to do right, so most observations so far have been setting the surface to look straight up and leaving the gantry in place, observing a stripe as the sky passes overhead.
It's only pure pain if you want bleeding edge AND stability. Non-rolling releases are just fine if you only need new features once a year.
Programming as Rage
Think Debtors Prisons Are a Thing of the Past? Not in Mississippi
How is this constitutional?
That's actually "premature generalization".
I don't have statistics on-hand, but as I understand it, bottom surgery (SRS, GRS, whatever you want to call it) has one of the absolute highest patient satisfaction rates of any major surgery (including lifesaving surgeries).

> permanent genital mutilation which results in a potential lifetime of pain from daily dilation of an artificial orifice which is little more than a glorified wound

Pretty much every single word of what you just wrote is not only wrong, but highly offensive. Please don't speak of things you don't understand.
Well it is better than making even trivial architectures with actual hardware (I have some pictures of me hauling servers over xmas a long time ago; that was cheap (in monthlies and hardware, not in hours!) but I would and do pay a premium for that). Otherwise I do agree somewhat; most overbearing systems can be done much simpler but we are all preparing (and thus paying) for eventualities that most likely will never occur or will not influence the bottom line.

Tech like AWS Lambda (of which I like the theoretical idea) are meant to remedy the issues with complexity for a premium. But that premium makes, personally, my eyes water. I cannot see any high volume operation justifying going live with it. Are there big examples of those? And how is it justified vs the alternatives (which are, besides some programmer+admin time and scalability) far more efficient?
Google Fi lets me text and call people from my computer if i lose my phone (through Hangouts). Not sure there's a replacement for that.
17 yr old discovers planet 6.9X larger than Earth on 3rd day of NASA internship