There's a massive reduction in the whale song of the blue whales. Almost halved. They are presumably starving.
That something ginormous can be so elegant, beautiful and sleek is hard to conceive till one meets a blue whale. Let's let them thrive on the blue planet.
The Blue Whale population has actually increased since the 70s. When they were critically endangered, their population numbered roughly 1,000-2,000 but population estimates for today put the number at roughly tenfold that. The 1966 worldwide moratorium on whaling has been incredibly successful and we’ve also seen recoveries in Humpback and Grey Whales.
We keep talking about “sustainability” but sustainability is a secondary issue here.
The primary issue is that we are taking individuals and basically torturing and/or killing them, rarely for good reasons.
It won’t even be decades before our descendants look back at horror for how we treat them, not unlike how we can’t even imagine how our ancestors thought it was ok to have human slaves.
The major difference will be that the horrors of human chattel slavery (even the name clearly links it to how we treat non human animals) have largely only been recorded via text. The horrors of our actions will be available in text, images, videos for all to see in perpetuity by just looking at an Instagram archive.
Adding more resources doesn't solve the problem that they aren't being managed sustainably. We can't exhaust all the resources in space, but we could definitely exhaust all of the resources accessible to us in space. Like how we can't exhaust all of the oil or all of the gold on this planet, but we could exhaust all of the resource which can be mined economically.
This was once explained to me with a metaphor of a bacteria colony in a jar. The colony doubles every 24 hours. So they quickly exhaust the space in the jar. No problem, you give them another jar. 24 hours later, their population doubles, and they have filled both jars.
Resource intensity of GDP has been falling for decades, most quickly in developed economies. Space-based resource extraction isn’t going to be radically cheaper (if it ever is cheaper) than terrestrial sources with known propulsion, so that balance is unlikely to shift. Herego, replacing terrestrial extraction with moderately-cheaper space-based extraction would reduce harm to our ecosystem without changing our economies to turbo-consume materials and thereby accelerate terrestrial extraction.
I agree it may reduce harm (depending on how the actual costs shake out), but the calculus remains that if you have access to finite resources but your needs are expanding exponentially, and you are not recycling them in some way, you will run out of resources no matter how many you have.
I'm not opposed to exploiting resources in space, I think we should pursue the goal of being an "interplanetary species", but I think it's important to understand that it isn't a silver bullet or a free lunch. We still have to change our economy to be more sustainable.
Not to mention that it is not clear that exploiting space resources or becoming interplanetary is possible. I presume that it is. But we shouldn't bank our future on something unproven. We don't know if we're a decade away from mining our first asteroid or a century. We should assume that our future is here on Earth with the resources currently available to us, until proven otherwise.
> if you have access to finite resources but your needs are expanding exponentially
Our material needs in many categories are not expanding exponentially. On a per-capita basis, in advanced economies, it's been flat in several categories.
If anything, the constraints of spacefaring seem perfect for nudging a culture and economy towards conservation and recycling. Building lunar and Martian colonies requires short-term sustainability in a way that does not have clean parallels on Earth.
> we shouldn't bank our future on something unproven
Nobody is banking on space-based resource extraction.
> We should assume that our future is here on Earth with the resources currently available to us, until proven otherwise
Bit of a paradox to this. On one hand, sure. On the other hand, given two civilisations, one which assumes space-based resource extraction and one which does not, which do you think is going to get there first?
> On a per-capita basis, in advanced economies, it's been flat in several categories.
Right, but our population is, at this time, growing exponentially. That may change but hasn't yet.
> If anything, the constraints of spacefaring seem perfect for nudging a culture and economy towards conservation and recycling.
Quite possibly! I agree. But what I was saying is that getting access to resources does not solve sustainability. If anything this is an argument that sustainability is a prerequisite for space travel and not the other way around.
> Nobody is banking on space-based resource extraction.
I understand this is not your position, and I appreciate that your position is reasonable and informed. But it is what was being discussed when you joined the conversation. And it is something I hear people say all the time.
> [Which] do you think is going to get there first?
Are these hypothetical civilizations on the brink of unlocking space travel? Or are they 100 years away? The civilization hell bent on space is likely to burn themselves out and replace their leadership with people with more grounded ideas if unlocking space travel isn't a realistic possibility for them. If space travel is right around the corner than my expectation would be the grounded civilization freaks out about national security and joins this space race in earnest. I think in either scenario, all else equal, it's a coin flip. The tortoise and the hare both have viable strategies given the right conditions.
This is kinda sorta what happened in the space race. The USSR pursued rockets aggressively and took a massive early lead, believing that ICBMs were the solution the the USA's dominance in bomber aircraft. But they couldn't sustain that pace. If I recall correctly, by the time we landed on the moon they hadn't launched a mission in years. The USA more or less gave up on manned space travel and space colonization shortly thereafter. Obviously both continued to explore space and the tide is beginning to change, but I think that's a natural experiment which roughly addresses this question. (Not to the exclusion of future attempts with better technology going better.)
> our population is, at this time, growing exponentially
Not in advanced (i.e. materially intensive) economies. And global population models are currently all aiming towards stabilization.
> this is an argument that sustainability is a prerequisite for space travel and not the other way around
How so? Without space travel, there is no near-term incentive to develop those technologies. (The terrestrial incentives are all long term.)
> Are these hypothetical civilizations on the brink of unlocking space travel? Or are they 100 years away?
China and America are technologically within a decade of establishing Moon and Mars bases. Not permanent, independent settlements. But settlements that need to be as self-sustaining as possible nevertheless on account of launch costs and travel time.
> that's a natural experiment which roughly addresses this question
I see a different reading. We got a lot of sustainability-progressing technology out of the space race.
Alignment with the goal of human colonization wasn’t yet there. But there are reasons to be optimistic with modern materials, bioengineering and computational methods. Methods that could very easily also yield literal fruits that make our economies more sustainable at home.
> Without space travel, there is no near-term incentive to develop those technologies.
Of course there is. Our climate is getting less hospitable, right now, in our lifetime. Storms are stronger, wildfires are more frequent and severe, we're beginning to strain our fresh water aquifers, etc. We are seeing really alarming rates of decline of flying insect biomass and other signs of an ecosystem in distress, and that ecosystem provides us with trillions of dollars of value. There is no human industry without our ecosystem to support us.
Solar, wind, etc. are also getting more and more competitive with fossil fuels, providing a purely monetary incentive.
And if we disregard all long term incentives, who cares about space? Even if we use very optimistic figures we're not going to be exploiting extraterrestrial resources for a few decades. And if we encounter significant setbacks (which I have to imagine we will) that take quite a long time.
> China and America are technologically within a decade of establishing Moon and Mars bases.
I'll believe it when I see it. But if this is true, then wouldn't you say, by your logic, that this is a near term incentive for developing sustainable technologies?
> But there are reasons to be optimistic...
I agree. I don't think we really disagree in principle on any of this. I think we have different values and different levels of skepticism (or perhaps are skeptical of different things) but broadly/directionally agree.
> if we disregard all long term incentives, who cares about space?
The short-term incentives string together into a long-term plan.
> Our climate is getting less hospitable, right now, in our lifetime. Storms are stronger, wildfires are more frequent and severe, we're beginning to strain our fresh water aquifers, etc. We are seeing really alarming rates of decline of flying insect biomass and other signs of an ecosystem in distress, and that ecosystem provides us with trillions of dollars of value
Which has been enough urgency to do what exactly?
> Solar, wind, etc. are also getting more and more competitive with fossil fuels
Great example of folks pursuing short-term profit incentives making progress towards a long-term goal.
> if this is true, then wouldn't you say, by your logic, that this is a near term incentive for developing sustainable technologies?
If we try. Yes. If we gut those programmes, no. (For the technology benefits we just have to try.)
> we have different values and different levels of skepticism (or perhaps are skeptical of different things) but broadly/directionally agree
I think so too.
I think some people are motivated by stewardship and others by exploration. Focusing one one at the expense of the other is a false economy. And pursuing both doesn’t necessarily mean a long-term trade-off.
Poor countries have actually less impact on our planet than wealthy ones.
There are many ways to handle population control, not only controlling natality. That wouldn't be popular but you could imagine a mandatory euthanasy at 55 or 60 for example.
That sort of thinking needs to first and almost-entirely be directed at China, India and Africa, then we can talk about sustainability and what the West can do.
"Your IP address 104.28.103.15 has been used for unauthorized accesses and is therefore blocked!
Your IP address belongs to Cloudflare and is being used by many users, some of which are hackers and hide behind the cloud/proxy to avoid being tracked down. Hence the automatic defense closed access from that IP address.
"Make sure to not use a proxy/cloud service for visiting AVH (e.g. Apple Users turn off your private relay) but your native IP address, then access should be possible without a problem again."
That's a pretty nice message. Most sites that filter VPNs and proxies just kill the connection, give a generic error, or subject you to endless captchas.
So could everyone that blocks network traffic for various reasons, but usually they don't because they're not doing it in the primary application layer, but using a WAF or reverse proxy or something else in front of their application... and also most DGAF to cater specifically to the users they block.
Again, you're usually lucky to even get a return packet.
To offer a counterpoint, I had much better intuition as a junior than I do now, and it was also better than the seniors on my team.
Sometimes looking at the same type of code and the same infra day in and day out makes you rusty. In my olden days, I did something different every week, and I had more free time to experiment.
Hobby coding is imho a high entropy signal that you joined the workforce with a junior title but basically senior experience, which is what I see from kids who learned programming young due to curiosity vs those who only started learning in university. IOW I suspect you were not a junior in anything but name and pay.
There’s also a factor of the young being very confident that they’re right ;)
My path is a little different. I have used Haskell, and I'm looking to get into OTP.
My original plan was either Elixir or vanilla Erlang depending on which one suits my sensibilities better. Reading about Gleam recently has me super, super excited. That's definitely going to be my path now.
I don't know if Gleam is the best entry into the world of rich types that you find in a language like Haskell--I'm yet to actually build something with it.
What I can tell you is that Haskell is a complete joy to use and it honestly ruins most other programming for me. So as a direction, I cannot recommend it enough, and I'm hoping, for my sake and yours, that Gleam offers a similarly stimulating sandbox.
Just a warning that it will take time to get used to "higher-kinded" types. It's an exercise in head scratching and frustration at first. The reward part arrives when you start thinking in types yourself and you know which ones to reach for and when you find the libraries you want by entering a signature on Hoogle.
I have a F# background, and thought to have read that some constructs I learned to appreciate are not available in Gleam (the one I can think of right now is currying, but I thought there were others).
The issue isn't that OTP isn't a priority for Gleam, but rather that it doesn't work with the static typing Gleam is implementing. This is why they've had to reimplement their own OTP functionality in gleam_otp. Even then, gleam_otp has some limitations, like being unable to support all of OTP's messages, named processes, etc. gleam_otp is also considered experimental at this point.
Having Erlang-style OTP support (for the most part) is very doable, I've written my own OTP layer instead of the pretty shoddy stuff Gleam ships with. It's not really that challenging of a problem and you can get stuff like typed processes (`Pid(message_type)`, i.e. we can only send `message_type` messages to this process), etc. out of it very easily.
This idea that static typing is such a massive issue for OTP style servers and messaging is a very persistent myth, to be honest; I've created thin layers on top of OTP for both `purerl` (PureScript compiled to Erlang) and Gleam that end up with both type-safe interfaces (we can only send the right messages to the processes) and are type-safe internally (we can only write the process in a type-safe way based on its state and message types).
I wholeheartedly agree with you that gleam_otp is janky. Still, actor message passing is only part of the picture. Here are some issues that make static typing difficult in OTP:
• OTP processes communicate via the actor model by sending messages of any type. Each actor is responsible for pattern-matching the incoming message and handling it (or not) based on its type. To implement static typing, you need to know at compile time what type of message an actor can receive, what type it will send back, and how to verify this at compile time.
• OTP's GenServer behaviour uses callbacks that can return various types, depending on runtime conditions. Static typing would require that you predefine all return types for all callbacks, handle type-safe state management, and provide compile-time guarantees when handling these myriad types.
• OTP supervisors manage child processes dynamically, which could be of any type. To implement static typing, you would need to know and define the types of all supervised processes, know how they are going to interact with each other, and implement type-safe restart strategies for each type.
These and other design roadblocks may be why Gleam chose to implement primitives, like statically typed actors, instead of GenServer, GenStage, GenEvent, and other specialized OTP behaviours, full supervisor functionality, DynamicSupervisor, and OTP's Registry, Agent, Task, etc.
OTP and BEAM are Erlang and Elixir's killer features, and have been battle-tested in some of the most demanding environments for decades. I can't see the logic in ditching them or cobbling together a lesser, unproven version of them to gain something as mundane as static typing.
EDIT: I completely missed the word "actor" as the second word in my second sentence, so I added it.
I suppose I was unclear. It is OTP-style `gen_server` processes that I'm talking about.
> OTP processes communicate via the actor model by sending messages of any type. Each actor is responsible for pattern-matching the incoming message and handling it (or not) based on its type. To implement static typing, you need to know at compile time what type of message an actor can receive, what type it will send back, and how to verify this at compile time.
This is trivial, your `start` function can simply take a function that says which type of message you can receive. Better yet, you split it up in `handle_cast` (which has a well known set of valid return values, you type that as `incomingCastType -> gen_server.CastReturn`) and deal with the rest with interface functions just as you would in normal Erlang usage (i.e. `get_user_preferences(user_preference_process_pid) -> UserPreferences` at the top level of the server).
Here is an example of a process I threw together having never used Gleam before. The underlying `gen_server` library is my own as well, as well as the FFI code (Erlang code) that backs it. My point with posting this is mostly that all of the parts of the server, i.e. what you define what you define a server, are type safe in the type of way that people claim is somehow hard:
It's not nearly as big of an issue as people make it out to be; most of the expected behaviors are exactly that: `behaviour`s, and they're not nearly as dynamic as people make them seem. Gleam itself maps custom types very cleanly to tagged tuples (`ThingHere("hello")` maps to `{thing_here, <<"hello">>}`, and so on) so there is no real big issue with mapping a lot of the known and useful return types and so on.
I read the code but I'm not sure I understood all of it (I'm familiar with Elixir, not with Gleam).
For normal matters I do believe that your approach works but (start returns the pid of the server, right?) what is it going to happen if something, probably a module written in Elixir or Erlang that wants to prove a point, sends a message of an unsupported type to that pid? I don't think the compiler can prevent that. It's going to crash at runtime or have to handle the unmatched type and return a not implemented sort of error.
It's similar to static typing a JSON API, then receiving an odd message from the server or from the client, because the remote party cannot be controlled.
> [...] start returns the pid of the server, right?
Yes, `start` is the part you would stick in a supervision tree, essentially. We start the server so that it can be reached later with the interface functions.
> [...] probably a module written in Elixir or Erlang that wants to prove a point, sends a message of an unsupported type to that pid? I don't think the compiler can prevent that. It's going to crash at runtime or have to handle the unmatched type and return a not implemented sort of error.
Yes, this is already the default behavior of a `gen_server` and is fine, IMO. As a general guideline I would advise against trying to fix errors caused by type-unsafe languages; there is no productive (i.e. long-term fruitful) way to fix a fundamentally unsafe interface (Erlang/Elixir code), the best recourse you have is to write as much code you can in the safe one instead.
Erlang, in Gleam code, is essentially a layer where you put the code that does the fundamentals and then you use the foreign function interface (FFI) to tell Gleam that those functions can be called with so and so types, and it does the type checking. This means that once you travel into Erlang code all bets are off. It's really no different to saying that a certain C function can call assembly code.
I'll bet Apple would play ball and tell Rivian if the destination is a charger.
That aside, what about safely messaging people, listening to my audiobooks/podcasts in my app of choice, and interacting with the apps and shortcuts on my phone through Siri?
It's the wrong choice IMO.
To be clear, I know Bluetooth audio is available. But having everything on the screen makes it easier.
And you're entitled to your own opinion! It's not about your iPhone telling the vehicle it's going to a charger, but that charging is part of the process. It needs to be baked into the roots of the navigation system. Apple's just not positioned to care enough about that.
I can't speak for Rivan's dev team's plans, but all the big car manufacturers have a voice command feature. How well it works is a different question. Siri is....how do I say this politely. Siri is best used in very specific circumstances for specific tasks. I can't imagine Rivian isn't looking to compete with the features Siri offers in those particular circumstances.
If it were GM or a different legacy automaker we were discussing here, I'd have different things to say, but Rivian isn't one of the big three.
The navigation point is well taken, and I'm not advocating for Rivian to tear that out. I'll use the Rivian stuff when I'm navigating to a charger or doing a road trip.
CarPlay is purely additive.
As much as I complain about all the crap Apple gets wrong, no car manufacturer will beat them on UI or the choice of apps.
CarPlay always felt pretty rubbish compared to the integrated BMW System to me, which just gets the job done. But I also just want to have Navigation and Music during driving
The way we live on land is unsustainable too, of course.
reply