Hacker Newsnew | past | comments | ask | show | jobs | submit | Asraelite's commentslogin

> for productive national conversation (and some digital services) at scale to happen online identities need to be verified

That is the exact opposite of what you need. Loss of anonymity creates chilling effects that stifle conversation.

AI bots/spam are a problem, but don't solve it by creating an even worse problem.


Those aren’t exact opposites. You can have a verified identity while being anonymous in the eyes of an online service, for example with notaries.

"nothing" is not the same the same as "zero". "zero apples" means something different to "nothing", but that difference is subtle and difficult to explain, which is what makes the invention of zero such an achievement.


ok, "no apples."


Also not the same. You can't say "the number of apples is no", but you can with "zero".


And that is an all-time great innovation outpacing the Cartesian coordinate system, you say, being able to word a sentence differently


The wording was just an attempt to illustrate the point. There are cases where you can rephrase a sentence with "zero" to get basically the same meaning, but the important thing is that "zero" falls into the same semantic class as other numerals, which other ways of negatively qualifying existence don't.

Put another way, the invention was not literally the word "zero", or anything to do with language per se. It was the idea that you can think about lack of existence in the same was that you think about counting, i.e. treating the idea of there being two apples and the idea of there being zero apples as two examples of the same thing in your mind, instead of treating one as being in some way fundamentally different.

Being raised with a maths education from a young age now, it's easy to see this as obvious, but there was a time in human history when it wasn't.

Also, I wasn't disagreeing with the Cartesian coordinate system being more significant.


I think ppl really do overrate the "mind shift" needed for zero. That's my honest opinion. I think ppl don't think about it hard enough.

The fact is, zero's usefulness is a bookkeeping device. "There are zero apples" is not better or more useful than "there are no apples." That's not why zero survives. You can wax poetic day and night about what a mind shift "lack of existence is." You're not getting it. You're missing the point. What does that _enable_ that "no apples" does not? That's the measure of its usefulness, right?

It enables positional notation. That's zero's primary gift to the world. It is a necessary bookkeeping device for positional notation. And the measure of positional's usefulness over its predecessor, additive numerals a la the Roman system, is so profoundly great that no argument need be made. No waxing poetic is needed. No "it seems obvious now but back then." It's just indisputable.


That doesn't follow. Linguistics is not literature.


The Rust standard library.


No it doesn't. The fact that the article had to say "Maybe Redis for caching" because Postgres can't handle caching at scale shows that Postgres is not a perfect solution. Choosing an alternative database that can do everything you need means simplifying your architecture in the spirit of the article (not to say that MariaDB specifically is the right choice here, I'm not familiar enough with it to comment on that).


> because Postgres can't handle caching at scale

Which is the exact point the article is making. You don't have scale. You don't need to optimize for scale. Just use Postgres on its own, and it'll handle the scale you need fine.


https://tech.nextroll.com/blog/dev/2022/11/11/exploring-mona...

The thing that always makes FP concepts click for me is seeing them explained in a language that isn't Haskell or similar.

I don't know why people are so obsessed with using Haskell for tutorials. Its syntax is a nightmare for newcomers and you can do FP in so many other languages.


For instance, C#:

  public static System.Collections.Generic.IEnumerable<TResult> SelectMany<TSource,TCollection,TResult>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,System.Collections.Generic.IEnumerable<TCollection>> collectionSelector, Func<TSource,TCollection,TResult> resultSelector);
compared to:

  (>>=) :: m a -> (a -> m b) -> m b
Guess which one I googled, and which one I typed from memory.


In your c# sample full namespaces are unnecessary and will add only noise in this context.


Haskell have some syntactic sugar which makes monads nice to use, which is why monads are popular in Haskell.

Explaining monads in JavaScript or C# might show the mechanics but will not show why anyone would actually want to use them, since it just result in overly convoluted code.


I strongly disagree. Monads are used all the time in non-FP languages. Parser combinators are one common example. It's just a programming pattern which gives the benefits of global variables without the downsides. They work perfectly fine without dedicated syntax.

I was very confused about what they were until I saw an article similar to the one I linked, and then I realized that I had actually been using monads all along, I just didn't know they were called that. I think a lot of developers are in the same boat.


I dispute that monads are used “all the time” in non-FP languages. Can you provide some examples?


> I don’t know if anyone building a Pi cluster actually goes into it thinking it’s going to be a cost effective endeavor, do they?

Some Raspberry Pi products are sold at a loss, so I could see how it's in the realm of possibility.


Those are not exclusive to Haskell.

Personally, just from reading the title, I was hoping for an article about the design of type systems in programming languages in general.


I don't understand, "cleaner" and "less dirty" are perfectly synonymous to me. Are they not to you?


Same. If anything, this post taught me that actually, depositing and moving around large sums of money is straightforward.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: