The issue is that a lot of transit planning is politically motivated and done to maximize "coverage" rather than more meaningful metrics like ridership, usefulness, and profitability.
Planning for coverage allows you to tell individual taxpayers that they're "served" by the transit they help fund, but most will never use it because it's infrequent and the routes take forever to get anywhere. Optimizing for ridership means you focus on a smaller number of straight-line routes that are highly useful and run them at high frequency so that a smaller pool of people come to rely on them and use them regularly, instead of as a last resort.
> The issue is that a lot of transit planning is politically motivated and done to maximize "coverage" rather than more meaningful metrics like ridership, usefulness, and profitability.
That's definitely my experience in York Region (north of Toronto for those unfamiliar) and Ottawa. Far too many bus stops, but wait times > 15 minutes _per route_ outside all but the most peak parts of rush-hour. Including on their "bus rapid transit" trunk lines. You almost end up feeling like a patsy every time you decide to take public transit.
I enjoy taking LRT and buses in Waterloo Region, especially with my kids, but I think I go in expecting that there's a tradeoff— longer wait/travel time in exchange for being able to read on my kindle or play games on my phone on the way.
Busses are the thing that needs to be self-driving first (after trains, which can already be). Combined with automated passing spots.
The worst about busses is when they come every 30 min, but already arrive full. Or when they have more than one bus for a given timeslot and don't dock the less-full bus first.
In Seattle, a typical local bus trip costs the transit company around $10, while the ticket costs around $3. Running twice as many buses would result in cost of something like $18-20 per ride, which would make it require even more subsidies than it already receives.
That assumes the buses would be similarly packed. With a denser and reliable schedule you get more people using the bus and it can actually require fewer subsidies.
(In other words: instead of a half-empty bus every 20 minutes you end up with packed buses every 5 min)
The "farebox recovery ratio" for cars is also low: taxes and user fees only pay for only ~50% of the cost of roads, at most. The rest comes out the general fund.
I really think the answer to this is to run much smaller and cheaper buses instead of the extremely expensive big ones that only have a few occupants. Shuttle buses cost around $60-70k vs >$600k for a new full size bus. Of course, driver labor is also a significant cost, but I think it's easier to find shuttle bus drivers as it only requires a class B license.
The big difference is that if a competent plumber looks at a sink, it will take them 30 seconds to figure out. If a competent programmer looks at a new codebase with 30000 lines of code, it will take them 6 months to understand it, and then still be missing 80% of the details.
The other difference is that for most modern ice, you get plenty of torque, but only a quarter second after you asked for it due to turbo lag. With an EV, the torque is instant.
one interesting thing is that you will fairly frequently see professional orchestras be out of phase with the conductor, but everything still works out.
Does a really good conductor train each section to come in on different parts of the visual cue then, e.g. double bass would play before the violins in the front? I guess you can't precisely solve this problem for more than a single listener.
If the listener is relatively further away from the orchestra than the orchestra members are to each other, it mostly all balances out, especially when you add the room and bandshell reverberation (which tends to wash the note onsets to some degree).
This is also helped by the instruments in the back of the orchestra favoring the low frequencies, where the listener has less access to precise timing information.
As a (former) bass player, you need to start a bit early, yeah. But that's not so much for distance but because it takes longer for the sound to start. Pipe organ is of course much worse. I would do one concert a year sitting next to an organist... The keyboard noises and motion from him playing way before me were pretty distracting. And when we stopped during rehersal, he'd stop on the keys right away, but the organ would keep going for a bit.
Is it? The fundamental reason the war on drugs failed is that drugs have relatively inelastic demand. Someone addicted to meth will find a way to get meth if it costs $10 or $500. Software exploits aren't like that at all. They are a tool used by gangs and governments that are only useful if they cost less than they're worth.
More notable is the fact that (like software transactions) drug transactions happen in private between consenting parties. The war on non-addictive drugs (say, psychedelics) failed too.
What? This is wrong on so many levels. Inflation (dilution) is far more damaging to the lower income ranges. Inflation is also the reason that half of Americans don't have savings. What little is earned buys less each year. Since earned dollars buy less the longer they are held people are encouraged to spend quickly. So, inflation makes it harder to save and makes saving ineffective.
Higher income ranges are able to save by purchasing physical assets that can later be sold for inflated dollars. But, inflation is damaging to higher income purchasing power as well. There is just more breathing room in higher income ranges. Middle class becomes lower class unless they can manage to earn more.
Inflation is a loss for all but a few. Everybody becomes more poor through inflation with the exception of people closest to the new money. Those closest to new money get to spend it before prices increase.
Imo, the solution is to stop using C/C++ for high performance applications. Today's computers are diverse enough that distributing compiled binaries leaves a ton of performance on the table.
What would you like you use instead? C/C++ code which targets generic x86_64 is a few percent slower than march=native but that still leaves it way faster than most other languages.
It sounds like that will prevent threads from mutating the tree in the (potential) presence of an iterator in some other part of the tree, which is prohibitively expensive for many applications.
There are ways to avoid locks, but the stdlib implemtation doesn't do it. There are probably a bunch of crates that implemented concurrent BTrees, though.