Hacker News new | past | comments | ask | show | jobs | submit | tinco's comments login

Only 1% of GDP is agriculture, yet 100% of society relies on agriculture for survival. Because we don't have food shortages right now, GDP is heavily slanted towards things that don't really matter. You can't take that sort of monopoly money and try to influence the real world, if it were that easy then governments would be changing gas prices to win elections a lot more effectively.

Not disagreeing that there should be a lot more funding of climate change reducing endeavors, I just don't think that GDP should/could be an anchor to base that on.


There's no immediate bottleneck for reducing fossil fuel consumption. More money will translate into more effect, at most delayed by some half of a decade for any foreseeable effort.

At some point we will find a series of bottlenecks. But up to a 30% reduction (with ~100% clean electricity) it's obviously clear, and it looks doable up to ~90% (electricity, transportation, heating, and some industry converted).


Yeah that sounds right, I'm just wondering where the materials and the labor come from. We don't just have 5% of GDP worth of those laying around, they're currently allocated to other things. Not saying it's impossible, but it's hard to estimate the repercussions.

> materials and the labor come from. We don't just have 5% of GDP worth of those laying around

You have to make up your mind, if you are concerned about real resources or fictional ones.

If we want to optimise for real resources we would round up all the people who’s job is to destroy real resources, like casino pit bosses and the managers of Prada and fast fashion that destroy clothing to create artificial scarcity.

And we would kick them out in the rain to do tree planting.

Climate change threatens a lot more than 5% of real reseouces - in fact what happens when the Middle East and American Midwest runs out of underground water reserves?


> what happens when the Middle East and American Midwest runs out of underground water reserves?

It's not a neck and neck race, what has happened is one region drains its aquifers first and then silently raids the other's ...

* https://www.pbs.org/newshour/politics/in-drought-stricken-ar...

* https://www.cbsnews.com/news/saudi-company-fondomonte-arizon...


Those are very weirdly specific examples that don't destroy much real resources at all. What resources does a casino pit boss destroy but time? And surely Prada has one of the smallest resources to money spent ratios you could imagine? Half a calf's worth of leather for a $10k bag?

Anyway, that's what my sort of point is. Much of the GDP is spent on dumb stuff like holding stocks, gold, art and Prada bags. When you divert a percentage of that to be spent on real resources it can have major effects. Kind of like how when leisure travel became affordable for regular people, suddenly air travel and cruise ships started to have an outsized effect on climate.


The (vast) majority of labor on this planet is underutilized and there’s plenty of material still left in the ground if there was demand to extract it. There are two billion people living on subsistence farming alone whose labor could be unlocked by raising them out of poverty and feeding them via mechanized agriculture. Then there’s the massive logistics of modern militaries that could be retooled towards climate change diplomacy.

Unfortunately it’s all part of the same tragedy of the commons and coordination problem.


> I'm just wondering where the materials and the labor come from. We don't just have 5% of GDP worth of those laying around

IMO for labor, I'd say ~80% of jobs are more or less completely worthless. Many, many industries don't produce anything at all, they just move intellectual stuff from point A to point B, slap their existence on it, and shave off a few cents for themselves.


Oh, certainly, if we are to make a serious effort, it requires dealocating a bit of resources from other areas.

Energy investments are some 3% of the GDP, diverting those is an almost complete non-brainier. But we'd need to get about as much from other places.


"Let them eat Credit Default Swaps."

It's been a couple years, but when I built our in-office render farm for my previous company I also got motherboards with built-in 10G because they needed 4GPU's and there simply no more PCIe slots left. There were so many connectivity issues, but eventually it was solved when we replaced the switches. When I first built the farm there was only one brand that sold cheap 10gbit ethernet switches, but a couple years later finally ubiquiti started making them as well and I think now all of the semi-pro brands sell 10gbit switches. Since we swapped to ubiquiti switches we had no more connectivity issues, not even with the cheap 10G interfaces.

The good intel 10G cards were not expensive at all by the way, I bought them for later additions, and they were cheaper than the premium we paid for the money-gamer motherboards that included 10G cards that I saw you were unhappy about too.


Kind of ironic that nowadays many people in our generation consider the newer generations to be lacking fundamental education because they never used GOTO based programming languages. I've talked to multiple people who lamented that young programmers have never done assembly or BASIC.

It’s helpful to have a mental model of how the computer works. I don’t know if it’s necessary that one have spent mountains of time building real software using a GOTO/jmp style, but having exposure to it would be nice, rather than hiding it away.

Jeff Dunteman’s assembly programming books included a “chapter 0” that I always loved, and which really stuck with me for how creatively they taught those topics.


I mean, CPUs do a bunch of work to make us believe they still operate just as a fast PDP-11, and I would wager that besides compiler experts that work on the backend parts of compilers, not many people have a real feel for modern hardware (obviously besides those that actually work on that given hardware).

So I'm not convinced that even those who think they know how it works know it actually.


We need updated board games that replicate the function of a CPU.

Assembly? Sure, that has some educational value.

BASIC? That’s just nostalgia for poverty.


Not entirely. GOTO can be pretty nice! And even the lack of structs probably has the advantage of helping to prepare you for today's world where column-major is back in style, for performance reasons.

The reason NextJS and similar tech like SvelteKit are so popular amongst JS developers is that they alleviate the problem of Node.JS not having a great backend development experience. Building a backend in Typescript is like building it in C#, but without the advantages of a properly designed language. The experience of building a backend in Rails is miles away.

Node.JS developers are starting to realize it's not just about having the ecosystem and the tooling, it's also about the framework being a holistic solution to building out your application. That's what NextJS and SvelteKit help with, and that's what Rails revolutionized back in 2006.


> Building a backend in Typescript is like building it in C#, but without the advantages of a properly designed language.

I like typescript. In what way isn't it a "properly designed language", compared to C#?


Well it’s bolted on for a start so introduces overhead from the get go. Its type system is also severely hamstrung and complicated by JS compatibility. It doesn’t really compare to Rust, Swift, OCaml etc.

I do think it’s a huge improvement on JS though.


You say that, but its type system has some wonderful feature that those other languages lack. In what way is it hamstrung? It seems better than C# to me!

For example, C# doesn’t support parameterised enums like typescript and rust do. Once you start using parameterised enums, you seriously can’t go back. It’s a killer feature.

But even then, typescript goes further. All of these languages let me make a Color enum with red, green and blue variants. But as far as I know, only typescript will let me write a function which takes a strict subset of those variants. In typescript I can have a function that only accepts red or blue - and passing green (or something that might be green) would be a compilation error.

Typescript also lets you make another type with a superset of another type’s variants. Eg type Foo = Color | “yellow”.

In rust if I want to change a function’s signature to make one of the parameters optional, that’s a breaking api change since all existing callers need to wrap the parameter in Some(val). But in typescript, I just change the parameter’s type from T to T | null and everything works.

Again, in what way is it hamstring? I’ll grant that JavaScript doesn’t have quite the performance of C# (though modern runtimes are pretty impressive!). But typescript itself seems great.


> C# doesn’t support parameterised enums like typescript and rust do

To be fair, you rarely miss them with pattern matching and records. In a similar vein to a sibling comment:

    var animal = ...

    Console.WriteLine(animal switch {
        Animal.Dog(_, var cats) => $"Chased {cats} cats",
        Animal.Cat or Animal.Bat => "No cats chased",
        _ => "Unknown animal"
    });

    abstract record Animal(string Name) {
        public record Dog(string Name, int CatsChased): Animal(Name);
        public record Cat(string Name): Animal(Name);
        public record Bat(string Name): Animal(Name);
    }
There are many libraries to further enhance the experience, provide additional exhaustiveness analysis, etc.


Does TS have parameterised enums? Can you give an example?


It's not an explicit feature, but a combination of arbitrary records, sum types, and type narrowing:

    type Animal =
      | { species: "dog", name: string, catsChased: number }
      | { species: "cat", name: string }

    const animal: Animal = ...

    // Available in all cases
    console.log(animal.name)

    if (animal.species === "dog") {
      // Can access dog attrs here
      console.log(animal.catsChased)
    }

    // ERROR: catsChased only exists for dog and not for cat
    animal.catsChased


Can TS enums carry values like Option<T> ?


Sure! Though the normal way to write Option<T> is simply T | null.


While it is thoughtfully designed, its type system has been designed under the severe constraint that it must be retrofittable on typical JavaScript code.


Your comment doesn’t advance the conversation in any way. It just restates the claim that typescript is worse in some unspecified way.

Can you give any examples of ways in which those constraints have resulted in a worse language?


> Your comment doesn’t advance the conversation in any way.

That's oddly rude. I thought it might be useful to someone (not necessarily you) to bring up the fact that TypeScript is subject to a very different pressure than most other mainstream languages. That has obviously resulted in a very different type system, e.g., one with much better support for structural typing than most mainstream languages.

> It just restates the claim that typescript is worse in some unspecified way.

I did not "restate that claim". In fact, I was careful not to claim that TypeScript is "worse" than any other language, because that's a meaningless word without more context.

> Can you give any examples of ways in which those constraints have resulted in a worse language?

Again, saying that it's "worse" or "better" without context is meaningless.


Which if it was easy, instead of someone like Anders Hejlsberg leading a language design team, anyone would do it.


I didn't say it was easy. It obviously wasn't.


In a way where you can’t admit that you like JS, because it’s not cool.


> That's what NextJS and SvelteKit help with, and that's what Rails revolutionized back in 2006.

Are you seriously comparing "being able to execute code on the backend" with Rails? Or Django? Or Laravel?

There's no way in this world Next/Remix/etc are helping in any way to write code on the backend. Where's the support for database access? migrations? ORM? queues? scheduled jobs? validations? translations? authentication? authorization?

The only thing Next.js is helping with is pushing people towards Vercel's platform, that's it.


If it comes to C# vs Typescript, I'll happily chose C#, at least for backend.

For the FE I would prefer Typescript over Javascript.


Why? I don't really understand the point of declaring a preference if there's accompanying explanation.


I wish, unfortunately in the golden age of SaaS vendors, many seem to have Vercel deals in place, so Next.js with Typescript it is.


To be fair, we were impressed with Google Docs 15 years ago. Not saying office.com isn't impressive, but Google Docs certainly isn't impressive today. My company still uses GSuite, as I don't like being in Microsoft's ecosystem and we don't need any advanced features of our office suite but Google Docs and the rest of the GSuite seem to be intentionally held back to technology of the early 2010's.


Google docs certainly haven't changed much the last 5-10 years. I wonder if that's an intentional choice, or if it is because those that built it and understand how it works are long gone to work on other things.


Actually I did see a few long awaited improvements landing in gdocs lately (e.g. better markdown support, pageless mode).

I think they didn't deliver much new features in early 2020s because they were busy with a big refactoring from DOM to canvas rendering [0].

[0] https://news.ycombinator.com/item?id=27129858


No more development? Time for Google to kill Google Docs!


I'd rather have a code base I'm going to be working on in a language I haven't learned yet, than having it be in C or C++ if it's of any significant size. Learning a new language is small thing, all things considered, especially if it's a well designed one like Haskell.

Spending a week or two getting familiar with the way things are done in a language, and then gradually become effective in it and the specific codebase I would be working on for me at least would beat having to work in an environment with 50 years worth of irreconcilable technical debt inherent to the language.


I agree with you fully, but I've also tried to onboard people to F# and Haskell and... unless you're the self selecting person that enjoys (typed) functional programming, the pushback you get from the other ~95% of developers is extremely strong.

If your stack is FP-ish, and you hire FP-ish developers, it's fine. But having non-FP devs write Haskell? Maybe I've been unlucky, but it's near impossible in my experience.


Are you saying American voters are tone deaf for prioritizing food availability over ethical sourcing of food?

I mean sure, but I don't think that judgement has any consequence unless anyone grabs a soapbox and starts chastising people for wanting cheaper food. I haven't seen any of the candidates do that yet.


I think even with a soapbox it wouldn’t be terribly effective.

We all know where our laptops and smartphones come from and the questionable-at-best labor practices associated with them, and nearly all of us continue to use them.

(To be clear, I’m no better. If a smartphone was released that was controversy-free but cost twice as much, I doubt I would buy it.)

I think food prices would be the same. People would complain about (and vote around) the prices rising, even if the higher prices were the result of more ethical labor laws.

I’m not saying that we shouldn’t fix bad labor practices, I’m just saying that people will invariably be hypocritical about it.


Smartphones/laptops/hardware is slightly different because its manufactured/assembled overseas. The dairy industry is domestically based and acting like its workers are based in the 3rd world. Threatening the population with higher prices if they can't continue to break the law is extortion and it needs to be treated as such. If you can't run a legit business with legal labor, you need to be shut down. Someone else will find a way to do it.


I don't really disagree, I'm against exploitative labor, and I agree that if you can't do things legally you probably shouldn't be in business, especially in an extremely rich country like the US. [1]

I'm arguing that most people are hypocrites on this, and the last two years have proven that they'll blame the current president if their food prices go up. I'm not claiming that this is accurate, I'm claiming that that's what people seem to think.

[1] Exploitive labor is wrong everywhere obviously, but it's much easier to justify a more "relative morality" in a place with much more limited resources.


Agreed, politics is a team sport and someone is going to get the blame on grocery costs or gas prices. Its really the medias fault because people don't have the interest/time/intellect to dig into these issues - its all on headlines/clickbait. Illegal labor practices in farming/dairy/meat processing have been going on forever but they only seem to be front and center every 4 years, or < 3 weeks out from a national election cycle.


This isn't about food availability or ethnical sourcing of food. Apparently the business model of the dairy industry has illegal labor baked into how they do things. They have the gall to threaten Americans with higher prices if their workforce is eliminated. Sounds like extortion to me. This is a problem of crony capitalism.


Here's a helpful atheistic definition of "God" I picked up somewhere: The force that enables good things to happen to groups of people who act upon a belief that they should do good to another.

I.e. if you say "thank God", you're really saying you're thankful that you and the people around you are making decisions that benefit everyone.

(Not an invitation for theistic discussion, just trying to be helpful to a fellow atheist)


I learned a bunch of programming languages on IRC, and the C and C++ communities on freenode were by far the most toxic I've encountered.

Now that Rust is succesfully assimilating those communities, I have noticed the same toxicity on less well moderated forums, like the subreddit. The Discord luckily is still great.

It's probably really important to separate the curmudgeons from the fresh initiates to provide an enjoyable and positive experience for both groups. Discord makes that really easy.

In the Ruby IRC channel curmudgeons would simply be shot down instantly with MINASWAN style arguments. In the Haskell IRC channel I guess it was basically accepted that everyone was learning new things all the time, and there was always someone willing to teach at the level you were trying to learn.


Not my experience. IRC was 'toxic' since forever, but that't not a toxicity, that's inability to read emotion through transactional plan text. Once one account that in the mental model IRC is just fine.


Wouldn't fibers work well for ActionCable applications? Lots of connections being kept alive, with sparse activity on them?


Yes. But just for the Action Cable parts, as in you'd deploy Action Cable standalone with falcon, and then keep Puma or whatever for the purely transactional requests.

If you don't, you'll notice that your Action Cable latency will be all over the place when a transaction request comes in.

It's acceptable for "hobby" use, but if you try to provide a good user experience with reasonable latency, you can't just collocate Action Cable and the rest of Rails in a single process.


Wow this sounds very smart.

Do you have any tutorial somewhere on how to use Falcon for this? I am getting some strange errors that would probably be covered in a basic tutorial already.


Have you actually benchmarked this and published the benchmarks somewhere?


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

Search: