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

Probably very clear-cut, right? "No parking, no business" never made sense, but it makes even less sense in a city where cars are involved in less than a third of all trips

Especially considering that

* Congestion is an opportunity cost in itself already, which is paid in wasted time by all road users, impacting mostly those who spend a long time on the road, which is busses, taxis, professionals and delivery drivers, as they spend the most amount of time actually driving in congested roads

* Congestion pricing forces trips to self-select on cost/benefits in actual dollars, instead of time, so you optimize for wealthier trip takers, short stays or high value trips, where before you would favor long stays (which make looking for parking forever not so bad), and people who don't value their time very much

* Car use remains heavily subsidized, as motorists do not come close to paying the full costs associated with their road usage


...did you respond to the wrong comment?

yep

Not sure how I managed that


>We need as many checks as possible - and ideally ones that come for free (e.g., guaranteed by types, lifetimes, etc.) - which is why Rust might be the language for vibe coding.

Checking preconditions and postconditions is much easier to do for a human than checking an implementation

The thing that would really make sense is a proved language like Coq or Promela

You can then really just leave the implementation to the AI.


Being left alone to build your cathedrals is the dream for me. This seems nice.

You are only left alone if your cathedrals generate enough value while being ignored. The post is about a tools team, so long as the tools work and nobody comes selling a "cheaper tool that solves everything" management doesn't care and you get to work. However if you tools start causing problems for the engineers who use them and the complain to management you are in trouble. If someone else comes along with a "cheaper tool that solves everything" you are in trouble (such tool may or may not be cheaper/better, the point is they can sell management on the idea they are - you didn't successfully defend yours)

Edit: there is one more danger: you do your job well and management thinks you do nothing and so gets rid of you (only to hire a new team in 3 months when everything collapses)


Me installing an app to transfer a movie to my girlfriend's iPhone, but we don't have a cable for it. You need a third party app called LocalSend, but that can't work, because the only WiFi we have access to is a complicated university gateway that won't support LocalSend, so I open up a mobile hotspot, but somehow iPhones can't connect to that. So we give up.

Airdrop?

Airdrop on Android?

>much in line with my reasoning, 0x11EC is the default key exchange algorithm used by Chrome, Firefox, and pretty much all other TLS clients that currently support PQC. So what’s the point of MLKEM1024? Well it turns out there is one customer who really really hates hybrids, and only wants to use ML-KEM1024 for all their systems. *And that customer happens to be the NSA.* And honestly, I do not see a problem with that.

...Really, you don't? I can hardly imagine anything more suspicious

>the US plans to use ML-KEM themselves, [a “Nobody but us backdoor”] would be the only backdoor they could reasonably insert into a standard.

Is that really convincing

And secondly, would we really know in advance? They can say that and then just use X25519MLKEM768 exclusively for stuff that matters.

I'm convinced they would love a broken algorithm in the IETF standard.


>STM is an optimistic concurrency system. This means that threads never block waiting for locks. Instead, each concurrent operation proceeds, possibly in parallel, on their own independent transaction log. Each transaction tracks which pieces of data it has accessed or mutated and if at commit time it is detected that some other transaction has been committed and altered data which this transaction also accessed, then the latter transaction is rolled back and is simply retried.

I already foresaw (and it gets mentioned later), the problem that if you have many small, frequent operations, they will prevent a big, long operation from happening because they will always change the state and cause conflicts before the big one can finish. You can easily code yourself an app that will softlock forever.

The post doesn't offer a good solution (it talks about one where there's a tradeoff, but you don't need tradeoffs for this)

The way this gets fixed it is to make the lock acquisition (or in this case, the priority of the merge?) preemptive (Wound-Wait)

All transactions have a global, ever incrementing number attached to them, their ID, which we call "seniority", if you try to get a a lock, and the lock is held by a transaction with a lower seniority (=> a higher ID), you kill the transaction, take the lock, and once you're done the transaction you killed is allowed to retry

In the meantime, if a transaction with the lower seniority tries to get the lock, it gets blocked

This insures that your program will always finish.

In the case of "lots of frequent small transactions" + "one big, long report", the report will get killed a few times, until your report inevitably becomes the most senior transaction to ask for this resource, and is allowed to complete.


https://old.reddit.com/r/haskell/comments/1oujfmi/mutexes_su... apparently "optimistic" glosses over some details


From the link:

> That ensures a function can't run forever if it's already clear it can't finish without a conflict.

That just makes them bail out quicker, it doesn't help them ever succeed.


databases also solve this problem by allowing the read only transaction to see a consistent snapshot of the data at some point in time. so the reader can do its work without needing a logical mutex.


> databases also solve this problem

They could, but are typically configured not to.

With default settings they let other processes' commits cut into the middle of your read. (See READ_COMMITTED.). I was flabbergasted when I read this.

When you turn MSSQL up to a higher consistency level you can get it to grind to a halt and throw Deadlock exceptions on toy code. (Moving money between accounts will do it).

I used to advertise STM as like ACID-databases for shared-memory systems, but I guess it's even more consistent than that.


Postgres's `set transaction isolation level serializable` doesn't result in deadlocks (unless you explicitly grab locks) but does require your application to retry transactions that fail due to a conflict.


Yeah, STMs can use MVCC in the same way, but that doesn't solve the long-transaction problem for bulk update transactions. The first example in Gray and Reuter is adding monthly interest to every savings account, exactly once.


long-running transactions are a really fundamentally bad idea if the length of the transaction scales with the number of accounts/users. these things need to be batched up in a way that code with at-least-once semantics correctly solves the problem. (in one TX handle just a bunch of accounts, calculating the interest, recording that these accounts already got the interest, and moving to the next batch.)

the problem with STM (or any other concurrency control mechanism) is that it's not their job to solve these issues (as usually they require conscious product design), so they are not going to solved by "just use STM".


There are some different approaches, but that's definitely one of them. However, it's not without its tradeoffs; you're sacrificing atomicity, in the sense that if updating some account throws an error, the already-updated accounts stay updated.


Farming isn't artistry, society benefits from its automation

Is it still bad if the farmer gets replaced?


I like the word farmer to be replaced.

It usually means EITHER land cultivator OR animal exploiter.

My choice of word maybe gives away that I'm not so okay with the latter category. While I think the first category is doing God's work on earth feeding the ever growing human population.


> My choice of word maybe gives away that I'm not so okay with the latter category.

I initially figured that use of the cultivator was also intended to be in the same vein, as seen by the no-till advocates. I was quite surprised that you later call it God's work. Mouldboard mafia representing.


What's so special about artists?

Farming is an ancient human practice. It would be a huge loss to society if we forgot how to do it with our hands, without automation.


>What's so special about artists?

People like doing it

If you automate away jobs people like, their labor gets re-routed to other things they don't like. Like not being able to sell illustrations and turning to being a cashier


I don't disagree with your central point, humans were creating art hundreds of thousands of years before they started farming at large scales. Creating art is a fairly fundamental aspect of our species.


> Is it still bad if the farmer gets replaced?

A farmer is an owner of a farm. To replace the farmer you would have to completely eliminate the entire concept of human ownership that we hold. Socialist or other community ownership structures around farms wouldn't do as that would not replace the farmer, it would make everyone a farmer.

> society benefits from its automation

Economies benefit from its automation. It's far less clear if societies benefit. Farm work is hard, but there is a sense of accomplishment when it is done, which is good for the psyche. The never ending "bullshit" jobs that most people seem to find themselves in nowadays has not lead to happiness.


> To replace the farmer you would have to completely eliminate the entire concept of human ownership that we hold.

Why?

> Economies benefit from its automation. It's far less clear if societies benefit. Farm work is hard, but there is a sense of accomplishment when it is done, which is good for the psyche. The never ending "bullshit" jobs that most people seem to find themselves in nowadays has not lead to happiness.

"Farming is good for the psyche" doesn't hold to the suicide rates.

Automate hard jobs where people kill themselves or destroy their bodies, future generations get jobs that are easier on the body and they get to live healthy longer. It's not rocket science!

Why aren't you a farmer?


> Why?

I already attempted to explained why. If there is a gap I overlooked or if something wasn't made clear, you're going to have to try and work with me with greater specificity.

> "Farming is good for the psyche" doesn't hold to the suicide rates.

Farmers are known to have high suicide rates, but being the owner doesn't imply doing the work. That is the role of the farmhand. I cannot find anything to suggest that suicide rates are high for farmhands.

> Why aren't you a farmer?

I don't understand your question. I am a farmer.


Ok I get the confusion

The framing of the debate is not using your terminology so this isn't useful

Being a farmer isn't owning a farm, it's doing the farming. Farmhands are farmers. This is the definition that most people have, and if we use your definition, the entire debate doesn't make sense. Remember we're talking about a game, and the game is called "replacing the farmer", in which you don't play a humanoid android handing out cash to a previous owner to buy a farm and then sitting on his ass paying out farmhands. The game is about automating the farming. There is no reference to ownership.


> Being a farmer isn't owning a farm

Not according to the government. To legally become a farmer you need farm receipts of a certain amount or more. Selling your labour to a farmer is not that. And not according to the dictionary either. There are multiple words surrounding this topic for good reason.

> Farmhands are farmers.

It is possible that a farmer also works on his farm, or another farmer's farm for that matter, but they would be a farmhand while in that capacity. People can be more than one thing, unsurprisingly. But not all farmers are also farmhands and not all farmhands are also farmers. Many farmers never lift a finger, so to speak. I personally work with farmers who don't even know what is growing in their fields.

> Remember we're talking about a game, and the game is called "replacing the farmer"

Actually, we were talking about some pedantic take on the word "replace", which transitioned into a pedantic take on the word "farmer". There is no discussion about a game going on in this thread. This indicates that you didn't bother to read the thread before replying. Why?


>> Being a farmer isn't owning a farm

> Not according to the government.

Why would we care what they think? Depending on the government we're talking about, that could be an ignominious distinction. One government that comes to mind most recently focused its efforts on creating fake memes and myspace pages of political opponents, to troll them, while the same government failed to provide basic services to its people (and continues to do so).

Instead of asking the government what words mean (Orwell wrote on this idea), we can just ask the people what the words mean. And the people say that 'farmer' includes folks doing the actual cultivation, even if they don't own a thing.


> Why would we care what they think?

Well, with the exception of Hong Kong, which isn't exactly a farming mecca, Singapore, and Eswatini, all other English speaking countries are democratic. Which means that the government and the people are the very same thing, so when the people have decided that's what farmer is, that's what farmer is to basically everyone (there are always outliers who like to go against the grain, of course).

> we can just ask the people what the words mean.

There's an old saying: "Actions speak louder than words". People will make up bullshit if you ask them. More revealing is to look at how people actually use the word "farmer" in practice. And it turns out that we do — and then record that use in a book known as the dictionary. Like I said in an earlier comment, it echoes the same.

> And the people say that 'farmer' includes folks doing the actual cultivation

Sure. There are also people who use the word "farmer" to refer to someone who creates web/social media content. But these are outlier uses. Obviously all words have been made up on the spot, and can be made up on the spot (again) any time you so wish. You've not stumbled upon any kind of revelation there. But in going that way you've made it clear that you're not paying attention to the discussion that is taking place.


> democratic. Which means that the government and the people are the very same thing

This is an unrealistic, idealistic assumption which evidence does not bear out. Examples: Ask people whether they think "farmer" includes non-owning cultivators; Look at majorities voting and losing due to things like the electoral college; Look at gerrymandering seeking to minimize government representation of the people.

If the government and the people are indeed the very same thing, then we can just ask the people, because according to you, the government agrees with the people anyways, or it is undemocratic.

> People will make up bullshit if you ask them.

In general, this goes double for governments. As for this example, it's impossible for the majority of people to "make up bullshit" for word meaning, because the meaning of a word is what most people say it is.

On the other hand, it's totally possible for a government to "make up bullshit" in that case.

> There are also people who use the word "farmer" to refer to someone who creates web/social media content.

There are also people (perhaps even governments!) who exclude non-owning cultivators from their personal definition of "farmer", but that is an outlier use, in some cases only applicable in niche contexts, like tax law. Most people do not use such a definition.

> you're not paying attention to the discussion that is taking place

Please don't attack other posters. That behavior is perhaps better suited for more well-known social media sites. You are smart and capable of making your point without attempting to detract from me as a person.


> Ask people what they think "farming" includes non-owning cultivators

"Farming" usually refers to all that surrounds the entire activity. That includes farmers, farmhands, supportive family, etc. But we've been talking about "farmer".

With that, I'll assume you accidentally mistyped "farmer". Let's take a look at a practical example. Soybean and cattle farmers have recently been all over the news with stories about their current low/high profitability. Do the masses watching the news understand these people as being the hired hands out in the field/in the barn collecting a fixed wage? Or do they understand these people as being the business owner with a product to sell?

> because the meaning of a word is what most people say it is.

Not quite. The meaning of the word is how the speaker (or author) has decided to use it.

But, yes, since we are currently talking about what most people consider the word to mean as a general rule, not a specific person using it in a particular way, "farmer" is deemed to be the business owner. We know this not only from anecdotal observation but also because there are people whose job it is to determine how people use words and that is what they have determined is most common.

The game chose to use the word differently, in a less traditional way, but the discussion has made it clear that we aren't talking about that specific instance. Going there would be nonsensical.

> Please don't attack other posters.

The computer screen you are looking at cannot attack you. Perhaps what you really mean is that your emotions are leaving you to feel unpleasant? These feelings stem from the mind's view of the world not matching the reality it is starting to understand. This confusion, for want of a better word, can feel like an attack of sorts. However, it does not stem from external force. It is an internal process. When this happens, it is time for personal introspection.


Google AI: Farmer

comes from the Middle English word ferme, meaning "rent" or "fixed payment," which in turn comes from the Anglo-French fermer ("to rent") and medieval Latin firma. These terms are ultimately rooted in the Latin word firmus, meaning "strong" or "firm". The modern agricultural meaning developed because land was often held under a fixed-payment lease, or "fee farm," and since most such land was agricultural, the terms became synonymous.

Feels to me that demos who disagree tend to make the politically-expedient substitute "peasant" without thinking too much about it

some French folks might also think of tax-collectors..


> Let's take a look at a practical example.

Yes, lets! No need to complicate this: Ask a sufficiently large sample of people whether they think a non-owner who cultivates land on a farm is a farmer, and you will find that most do. For more confirmation, consult a dictionary to see whether the term includes this person (hint: it does).

> "farmer" is deemed to be the business owner

Since we are currently talking about what most people consider the word to mean as a general rule, not a specific person using it in a particular way, "farmer" is deemed to be more expansive than that, including non-owners whose job is cultivation on a farm. We know this not only from anecdotal observation but also because there are people whose job it is to try to determine how people use words, and that is what they have determined is most common.

> The meaning of the word is how the speaker (or author) has decided to use it.

Not quite. The meaning of a word is what most people say it is. If a speaker uses an incomprehensible, made-up word, and the audience derives no meaning from the word, then there is no meaning in the word. The speaker has failed to convey the meaning in their head, into words.

> [extensive snide defense of your personal attacks on HN posters]

Your insistence that your attacks on other posters are okay because you typed them onto your screen is unfortunate. Please consult the HN guidelines on the matter, rather than your pre-existing opinions.


> The meaning of a word is what most people say it is.

Interesting. Most people say that "gift" is a present. A much smaller set of people — those who speak German — say it is poison. That could lead to some awkwardness (even death). Luckily that's not how it actually works. That idea is logically flawed in so many ways.

> including non-owners whose job is cultivation on a farm.

Okay. Why, then, do you believe people are so concerned about the soybean farmers collecting a fixed wage? It is not like low soybean prices means anything to them. They get paid either way. Why would there be consideration for a bailout be extended to them on top?

> The speaker has failed to convey their meaning in their head, into words.

A rambling speaker may lose sight of what they were trying to say as the growing combination of words start to pile on, but a single word is highly unlikely to lose the intent. If you intended "foo" to mean one thing when you said it, you are still likely to consider "foo" to mean the same thing when you revisit what you produced a few minutes later. So, no, this is not true in any meaningful sense. The meaning is encoded just fine.

Third-party consumers may misinterpret it, sure, but that's their problem. It wasn't produced for them anyway.

> Your insistence that your attacks on other posters are okay because you typed them onto your screen is unfortunate.

"Okay" is found nowhere in said comment. Rather, it explains that what you claim is impossible. A computer screen cannot attack you. It goes on to speculate on what you did experience and that remains the most likely explanation.

> Please consult the HN guidelines on the matter

I see nothing in there about summoning a computer screen to launch an attack, I'm afraid. It is very possible that we do not have a shared understanding of words here (we've already established that as being so elsewhere). Your usage holds force, of course. You are the producer in this case. But that does mean I am in the position of being the consumer misinterpreting it, possibly.


I agree with you here. It's kind of like programmers are not really programming anymore (well many aren't they're telling AI what to do). Our "program-hand" is the LLM.


Telling what an AI/LLM what to do is programming in the same sense that telling a C++ compiler/virtual machine what to do is programming. In both cases you're just describing in language what you want the machine to execute.

But you may have a point that programming hasn't been a thing since toggle switches were the only input into a computer.


> Actually, we were talking about some pedantic take on the word "replace", which transitioned into a pedantic take on the word "farmer". There is no discussion about a game going on in this thread. This indicates that you didn't bother to read the thread before replying. Why?

? No the entire thing is about the game and the word "replace" in the title.


Initially there was a short quip about the game "looking fun and pretty" to establish the segue into what we actually are talking about. Beyond that there is nothing about the game.

Did you, uh, misread "thread" as "threads"? There are certainly other threads entirely about the game, but not this one.


From the article

>These are all pretty straight forward, [...] wrapping an expression in a block, defining a variable x and using it, conditional statements, and running an expression n times.

Making your reader learn some ad-hoc shorthands you wrote to avoid declaring blocks, defining variables or writing conditions in my book is very impolite

Style doesn't need to be innovative.


```

#define _(e...) ({e;})

#define x(a,e...) _(s x=a;e)

#define $(a,b) if(a)b;else

#define i(n,e) {int $n=n;int i=0;for(;i<$n;++i){e;}}

```

>These are all pretty straight forward, with one subtle caveat I only realized from the annotated code. They're all macros to make common operations more compact: wrapping an expression in a block, defining a variable x and using it, conditional statements, and running an expression n times.

This is war crime territory


Some of these are wrong to. You can encounter issues with #define

#define $(a,b) if(a)b;else

due to not having brackets. So it's just extremely lazy to.


This should not be downvoted, this sort of error is indeed a very easy one to make when dealing with the C pre-processor.

> Some of these are wrong to[o] <- that needs an extra 'o' > due to not having brackets. <- that one is fine > So it's just extremely lazy to[o]. <- that needs an extra 'o' too

'to' comes in two versons, 'too' and 'to', both have different meanings.


Good grief! Are we really so insufferable as software developers that we can't just appreciate a brilliant article about the work of a remarkable computer scientist without nitpicking every supposed "bad practice"?

The whole point of the piece seems completely lost on some readers. Yes, we all know that #define $(a,b) if(a)b;else is questionable. I don't need a crash course on C macros in the comments, thank you. The author already acknowledges that Whitney's style is controversial. Do we really need to keep rehashing that point in every comment, or can we finally focus on how all this unconventional code fits together beautifully to form a working interpreter?


> I don't need a crash course on C macros in the comments, thank you.

This is an enduring great & terrible thing about sites like HN and reddit: As people become more senior & experienced, junior engineers come in to fill the ranks. You and I don't need a crash course on C macros in the comments. But I promise you, a lot of people here have no idea why #define $(a,b) if(a)b;else is a weird C macro.

How much should HN cater to junior engineers?


It is nothing to do with seniors vs. juniors but merely a lack understanding as to the intent behind somebody's work. When an acknowledged expert does something out of the ordinary you ask why and try to grasp his pov rather than pointing out obvious trivialities.


> How much should HN cater to junior engineers?

The assumption that HN should cater to junior engineers is curious. It implies a purpose the site has never claimed to have.


Yeah, I feel the same way you do, but then console myself with this quote - “Mediocrity knows nothing higher than itself; but Talent instantly recognizes Genius.” (from The Valley of Fear by Arthur Conan Doyle).

People have a silly need to point out the obvious as a crutch to their ego.


I wouldn't have a problem with it, if the implication wasn't that the author became smarter as a result of reading this code. That's my whole beef with it.

'Hey, look at this interesting way of using the CPP to create a DSL'

I'm fine with that. But this is precisely what aspiring C programmers should avoid at all costs. It's not controversial. It's bad.


Still, since the article already contains this warning, some people might argue that it's unnecessary for us to add it as a response to every comment here.


The entire field of locksmithing has a failing culture around security. They still rely on security by obscurity, they sue attackers, and they never improve


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

Search: