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

Those patterns look good.

Question: how to encourage such patterns within a team? I often find it difficult to do it during code reviews and leading to unproductive arguments about "code style" and "preferences".

Funnily, these arguments do not happen when a linter pops a warning instead...


I share your feeling. However

> pay whatever the market rate

would only work if there is a market. And infrastructures like roads are a natural monopoly[0], so there could be no market.

[0] https://en.wikipedia.org/wiki/Natural_monopoly


I don't think the idea is to have a market of roads to chose from. It is to make the existing car market more efficient by fixing the externality of other people paying for the damage you do to the roads by your choice of (heavy) vehicule.

Heavy semi-trailer trucks disproportionally damage the roads, if they'll pay a fair share groceries could become unaffordable.

Is it true? We, the people, currently pay for roads, we would pay for them in the alternative system - so the total amount of the money we need to pay would not change, only some prices (or taxes) would go down and others would go up. Either we care about having food and we would pay high prices for them (with money we saved elsewhere) or we don't care and we wouldn't pay.

> Heavy semi-trailer trucks disproportionally damage the roads

Which is another reason why freight should be delivered by rail. Yet haulage companies have no incentive to maintain an efficient rail network, when they could exploit a subsidised road network instead.


Then switch to subsidizing groceries instead of the the delivery method.

Virtually everything is delivered by freight and freight is responsible for almost all road wear and tear.

You would have to basically subsidise everything.


Unaffordable?

What’s the total cost of all road maintenance vs amount spent on groceries? How about vs all groceries plus all home goods?


OK, unaffordable is overstatement but increase in transportation costs will translate to some increase in prices and given that food is already around 25% higher (with some items 50% higher) than before COVID this increase will not be welcomed.

Even though it may change with technological developments, are you aware that EVs are the heaviest vehicles on the market, by somewhere around 140% the weight of ICE vehicle equivalents?

Model 3 is lighter than BMW 3 series ICE.

That's weird because there's no public road near me for miles and I can get 90% of the way to "town" without them.

I've also connected my private roads to a couple other private roads so no one has a monopoly on my way to town.

As for the "barriers to entry" mentioned in that article, is absolutely wild. My road and most the ones in our grid network were made with little more than a dude and a tractor (I think you can get suitable one for $10k off craigslist). I initially made mine with an axe, a light truck, and a rope (to rip out small trees) and there's nothing stopping anyone adjacent from doing the same if I'd block the road.


Do you understand why this isn't a workable solution for everyone, and likely not even for the last 10% of your journey?

It would work beautifully for the last 10% of my journey. The only reason why there are no private roads for the las 10% is the county tax funds that road, and only a complete and utter moron would build a road when their "competitor" has a price of zero at the point of use. People commonly ask why the public road has a monopoly; it's not that they are a natural monopoly but rather that it's literally impossible to compete with someone with zero costs (tax costs already sunk) so places with public roads have ~no competition.

The second that road gets defunded by the public coffers, guy with tractor would show back up.


Private roads are actually pretty common, found in older suburban development and in rural areas. I live off of one that is about 300m long.

They are unpopular since they effectively require a very small private association to maintain them. They really hurt property values (one reason I bought my place at a bargain price). Most jurisdictions try to prevent creating them because they lead to disputes between neighbours, or poorly maintained private roads become a problem when an emergency vehicle needs to get down one.

The budget for local roads is also quite small, since they don’t carry much truck traffic. My township of 5,000 people or so has 3 part time guys who maintain the roads and a few pickup trucks and a dump truck for hauling the asphalt. That’s it.

The most expensive part of road maintenance is replacing bridges.


How would you charge for road usage? Would there be a toll at the limit of every property ? How would it be operated ?

Ah! I just realized that there is an infinity of different triangles passing through those three points: two poles and any other point. Wild!

> I don't trust LLMs to do the kind of precise deterministic work you need in a spreadsheet.

Rightly so! But LLMs can still make you faster. Just don't expect too much from it.


Many businesses are not thinking long term. Farming businesses are businesses too, and may prefer short term profitability over long term sustainability.

See for example the depletion of the Ogallala aquifer, which is at the same time an existential threat to to farming and caused by farming.

https://en.wikipedia.org/wiki/Ogallala_Aquifer


This is a tragedy of the commons and not comparable to a singular farmer making a singular decision about what to plant on his field.


Imagine if hypothetically a supplier offered very competitive - maybe even loss-making - prices when they had 25% of the market; then once they had 90% of the market and most of their competitors had gone out of business, they planned to raise prices substantially, make back the loss, and produce a big profit.

Isn't each customer's decision to buy (or not buy) from the loss-making supplier a tragedy-of-the-commons situation?


I struggle for an example of that actually working. If it does it must be exceedingly rare. I can think of lots of example of having 25% of the market and then getting closer to the majority by cutting prices, but the part where they jack them back up usually doesn't work. For instance, Rockefeller did that to put his competition out of business, but then the price of Kerosene just kept going down.

The times where it actually worked (railroad) was because the people doing it convinced the government afterwards to "protect the market" (interstate commerce act) and created a violence enforced cartel that prohibited by law rebates and other methods by which cartels (and pre-ICA railroad cartels) commonly fall apart.


Once mosanto has 90% of the market and they jack up their prices. Farmers can go back to growing non-GMO seeds and not using round up to weed.


Another hilarious thing about the argument is that Roundup, and also the gene package involved in Roundup Ready plants, are now in the public domain. The patents are expired.

There's nothing preventing a country from just ignoring patents, too. That pretty much happened in India with Bt cotton, engineered to express an insecticidal protein. Gray market seeds with the trait became widely available there and the foreign patent holders judged it not worthwhile to try to prosecute. This was all very good news for Indian cotton farmers, especially considering the personal cost to them of exposure to the pesticides they'd otherwise have to have used.


Imagine if Monsanto just murdered every farmer that didn't use their seeds.

Both are equally legal.


I propose that from now on we call freewares "open binaries".


> Eventually i realized that i'm just manually implementing compile time typing by way of robust tests to cover interface requirements

This, so much this!


I sometimes plug my phone to a screen with a keyboard. It is not as good as a "real" computer but most everyday thing can be done (sending mails, browsing the web, editing spreadsheets).

I never tried programming on it but I can imagine a world where the only computer i own fits in my pocket.


I would go with a phone that has a keyboard, or with a powerful phone and just use a Bluetooth keyboard. Might be some mini keyboard (my fingers are small).


It does!

You can specify a protocol like this:

  class IntIndexable(Protocol[T]):
    def __getitem__(self, index: int, /) -> T: ...
(Edit: formatting)


The syntax is definitely harder to grasp but if the mechanism is there, I guess the parent poster's concern can be solved like that.

Although I understant that it might have been just a simplified example. Usually the "Real World" can get very complex.


> The syntax is definitely harder to grasp

Yes it is. I believe the reason is that this is all valid python while typescript is not valid javascript. Also, python's type annotations are available at runtime (eg. for introspection) while typescript types aren't.

That said, typescript static type system is clearly both more ergonomic and more powerful than Python's.


Are you saying, essentially, that if we split the "I" and the "O" in "IO", then ignore the the "O" in the way described in the article, the resulting program would be "safe-enough" ?


Hmm, at least in Haskell terms that would not be sufficient, if we define "IO" by the IO type, because some types of O, such as setting the value of IORefs, is definitely something that could be witnessed elsewhere depending on the flow of the IORef in question.

But I think in concept that maybe that's pretty close to the concept. Input from IO is arguably the definition of impure that we care about. But not all forms of Output are necessarily radioactive waste for purity. We might be able in practice to give ourselves a bit more wiggle room on that side without breaking all the benefits of purity, and gain substantial practical utility for a very, very small loss in theory. With some careful thought it's even possible the theory loss could be either "minimized or eliminated" or "strongly characterized and constrained". I don't know enough about the language in question to know what is in it, but a language that had first-class messaging of some sort ought to be able to define a form of output that is "you can send this message to this target any time you want without breaking purity", and the the code for the thing receiving the message could still itself be constrained by the effects system. (You could conceivably go so far as to insist that the resulting "exception handlers" rigidly form a tree that grounds out into code that uses none of these implicit handlers, though my gut says that will probably end up being more trouble than it is worth.)


This is basically what my effect system, Bluefin, achieves with its Stream type. "Stream" is an "output channel" that by itself is completely pure. Then, at the point of handling, you can choose to remove the effect in a pure way, by interpreting it in a way that doesn't use any effects, or by using IO, from which you then cannot escape.

https://hackage-content.haskell.org/package/bluefin-0.0.17.1...


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

Search: