Bazel splits the build into multiple phases. Starlark only comes into play in the first two, load and analysis. During these phases, Starlark code doesn't have access to the filesystem, except in a few very limited cases like using the glob() function to expand a wildcard to a list of source files. Furthermore, it only generates an abstract graph of build actions. The Bazel engine is responsible for executing this graph in later stages, which might result in non-hermetic things happening but usually not.
Starlark has intentionally limited functionality such as lacking Turing completeness or global variables. This provides guarantees that it can be executed in parallel and will have a finite runtime.
It has been said the broader gauge was chosen at the time to make trains able to run safely over Golden Gate Bridge with strong side winds. My physics is not good enough to calculate whether that argument makes sense. And I have no idea how realistic that route ever was.
I don't think the gauge is a major problem. Train orders are always a custom project, few urban networks use exactly the same standards. Railroad manufacturers are used to different gauges.
In particular the track gauge is a long way from being the only consideration. Structure gauge and Loading gauge are also crucial. When I first moved here despite this being an important port city a Victorian arch bridge carrying road traffic over the railway meant every single freight train carrying containers from the port to the rest of the country needed to either go on a circuitous route or use special low wagons with reduced capacity, which hold a container below axle height so as to fit under that bridge.
In that case blocking the road and dropping in a new road bridge was affordable given the economic value but generally you put up with what you've got.
True, when it comes to loading gauge one can no longer even about a standard. Most countries have several different loading gauges even for the same track gauge.
In practice I am not convinced the BART is severely impacted by their "weird" gauge (whatever is meant by that, not sure what their loading gauge is, for passenger trains the distance to and height of the platforms would be most relevant).
Stadler KISS series used by Caltrain is built at least in 3 different widths.
Auckland, NZ had (not sure whether still in use) rolling stock from the UK, converted from 1435 mm to 1067 mm track gauge, the loading gauge obviously was close enough.
Finland has engines (Sr3, Dr20) and railcars (Dm12) designed for smaller central European loading gauges. They look a bit tiny compared to other stock, but they are fully usable.
I've seen a Model 3 with very similar sounds coming from the passenger side mirror. There was a loose piece sticking out of the bottom, pushing it back in fixed it.
I assume that both parties have market research showing that enough people (maybe even 36%) don't care enough to figure out how to change the search engine or buy a different phone.
It's price discrimination. Some airline users are not price sensitive (the wealthy, corporate travelers with expense accounts) and they don't care about getting maximum value for their dollar. Economy fliers do.
> Rent control: A random windfall for whatever tenant snags these coveted apartments when someone dies in a 3 bedroom apartment they haven't needed in 30 years but "can't afford" to downsize from since they have been paying $650 since 1989. Also the illegal subletters who are numerous and shameless, from personal experience.
This is a misrepresentation of SF rent control. Rent increases for pre-1979 apartments are only capped if the same tenant lives there continuously -- when the apartment lease turns over, the rent can be raised to market rates.
That being said, there are some people that abuse the system by keeping a lease for a place they haven't lived in for 20 years and subletting it, sometimes for a profit, but there aren't apartments where the rent is permanently capped at 80s levels like you're suggesting.
Smart landlords will fight adding a cotenant, but tenants can always claim discrimination which is an uphill battle for the landlord especially in SF where juries are notoriously anti-landlord.
The standard leases used for rent-controlled apartments are very explicit about this, so unless a landlord used a non-standard lease, or didn't use a lease, this isn't a real problem. You don't have to be a smart landlord, you just have to not be a stupid one.
There's no issues around discrimination for this, and it's not an uphill battle. Replacement tenants are not co-tenants, and do not have rent control protection if the original tenants move out. Landlords cannot reject replacement tenants in most cases, but they have no requirements on accepting replacements as co-tenants. Replacement tenants are added as sub-letters of the original tenant.
I was a real estate agent who worked in property management, and I've also lived in rent controlled apartments in SF. You're absolutely wrong here.
That's... not a cartel though? A cartel is a group of firms conspiring to artificially control the supply of some good in order to increase its price, what you described is just several independent firms that have a high demand for workers and are bidding up salaries for them.
It was more cartel-like when Apple and Google were conspiring to keep tech salaries down by setting salary caps.
This was a big mistake on his part -- assuming he wished for museum to continue. He had a number of months after the diagnosis to make these decisions so they wouldn't be left to others.
The people that this broke weren't directly depending on the output of git archive being stable, but were assuming that the response data for a particular URL would stay constant. Maybe not a great idea either but not entirely unreasonable IMO.
The setup instructions for almost [1] every [2] major [3] rule set [4] only provide one (GitHub) url in the Starlark blob you're supposed to copy and paste, so hard to blame users here.
I created https://gist.github.com/jart/082b1078a065b79949508bbe1b7d8ef... to solve that, by turning bazel projects into makefiles. The problem is the bazel team has broken the apis that make it possible so many times since then because they reacted very negatively to the idea.
Starlark has intentionally limited functionality such as lacking Turing completeness or global variables. This provides guarantees that it can be executed in parallel and will have a finite runtime.