> We avoid the fanfare of Docker, as really it's not needed for Java apps; they're somewhat self-contained anyway and it created more problems than it solved.
Java apps have been "cloud ready" in a sense for about 20 years. JavaEE had a "WAR" or web archive file format that packaged an entire app up into a single file that could be deployed in an "Web Application Server". IBM wanted web servers to be mainframes, but for webapps. You could even deploy multiple apps in a single JVM, because the server would load each app in a separate classloader, meaning the apps were internally isolated from each other. The JVM even had an attempt at a cgroups like concept, called a Security Manager (that was abandoned, thank goodness), long before cgroups existed. Think WAR file = docker container.
Now, a lot of complicated bits were inherited that didn't need to be there when they brought over the mainframe thinking into Java apps, but the WAR format was actually something kind of cool they got right.
We in particular, take that WAR format, turn it into an executable, and we have a program that can execute on any hardware on any person's computer, with no pre-reqs except a JVM being installed. We test the _exact_ war file on a ARM RPI , developed on a Mac m1 or x86, and CI on a Linux x86.
Alright what does this mean? Lets take a look at another language...say a PHP application.... which may require extension Unix utilities of certain versions installed on the host system. You may need a certain version of PCRE grep, a certain version of curl, etc. This theme carries over to multiple languages, your python or ruby implementation may not support the latest version of libressl, or it might not even support your ABI at all. Docker solves these problems gracefully, by providing a fully configured virtual operating system tuned for running exactly one app.
The JVM... well doesn't need that, if written properly. Generally all the libs it uses are written in Java, they include all of their dependencies already, apps can be isolated with classloader boundaries (if that's your thing), you can download a single file and launch it if you use the "one-jar" technique.
So yeah, Docker loses a lot of it's luster with Java. It's not that you _cant_ use it, but it you can solve all the problems it does otherwise. Long rambling explanation but there you go.
> If you nationalize housing and hold prices low, then there will be supply shortages where some folks will not be able to get housing who would happily pay your price.
If you nationalize housing, wouldn't you also subsidize supply?
While that'd be able to guarantee housing on an "a home exists for every person in the country" level, it pretty often means sending people away from economically-healthy areas (which should have plenty of housing competition / are or will be built to capacity, because they're healthy). Subsidized housing in those areas is more expensive by far for someone, regardless of how it's done.
Hence the wait-lists even where it exists; people want to live where they can be near what they need (be that work, medical, family, etc), not literally anywhere. The "literally anywhere" tradeoff may be worse than homelessness, or at least perceived to be.
Sure, but how does this system work? Especially with newer services, like ride sharing, where people use personal vehicles to transport people within these areas?
You could require them to register as commercial vehicles. You can enforce using physical barriers or punishing fines/use fees for people that don't enter the area with a fare. Taxis can only go in certain parts of airports, rideshares have designated pickup zones, it seems to work fine. Or you just say that one of the downsides of being a part time driver that isn't part of a regulated fleet is that you don't get to congest downtown areas.
In Granada Spain I noticed that certain parts of the old city had physical barriers that could only be passed by a vehicle with the right NFC pass. Generally taxis, busses, and a few private cars that seemed to belong to people with property in the area. It made it very pleasant to walk around the old streets without having to suck down exhaust fumes of idling cars.
As you noted, Uber is a newer service, plenty of people happily lived their lives before it existed.
As an example, this sign [1] is at the edge of Copenhagen's main pedestrian shopping street.
The international symbols show it's a pedestrian zone, and there's a rule of no stopping from 11-04 (no stopping meaning not even any loading/unloading, a stronger restriction than no parking.)
The text says "Residents excepted" (under the graffiti/sticker) and "Goods vehicles excepted 04-11" (so deliveries and rubbish collection in the morning) on all days including Sundays and public holidays.
50m down the cross-street on which the StreetView car is driving, there's the standard sign for no motor vehicles [2], and the text underneath says "Except for business" -- so this street can be used all day for delivery vehicles etc.
Both signs are enforced similar to parking: get caught, and you'll be fined. I'm sure you're less likely to be challenged if you're driving a van with "Plumber" written on the side, but it shouldn't matter.
No doubt it's more complicated in cities where this is enforced by cameras.
(In addition, the pedestrian streets are mostly conflicting one-way streets [3, and do a 360°]. No problem for a delivery, but useless as a shortcut.)
On a more serious note, ride sharing services are considered as taxis which are considered public transport and public transport is generally allowed at least on designated roads.
You walk or take transit within that area? In my experience European cities are super walkable within the core, never bothered with taxis or ride-sharing.
In terms of CO2 specifically we can think of it as the 'embodied carbon' which the CO2 created during manufacturing of the parts, transportation, and assembly. Then we have the 'operational carbon' which is the day to day impact.
So to amortise the carbon cost we take the embodied carbon, plus the operation carbon over a time frame. If the operational carbon is negative we would expect that at some point it would break even.
So to help with the English, I don't think it makes sense to talk about the amortisation during the change over since that is just the embodied carbon. But I think it definitely makes sense to talk about the amortised cost over some other time period after the change over.