Super interesting. I love to see more stuff built on top of filesystem APIs.
I wonder what the performance characteristics are?
I'm assuming this is going to work well for small datasets that fit in memory, and probably less well beyond that. So good for config, context etc.
Also curious how the tables and index are maintained, for example if there's a write heavy workload. Does TigerFS handle rebuilding/repacking and the associated drudgery?
You really should pay, especially for work by small foundries.
Making a typeface takes a tremendous amount of work. The financial upside is extremely hard to justify.
I think non-designers underestimate the amount of effort required by an order of magnitude. I put it in the territory of building indie games. Potentially years of your life go into it, and it's a huge problem if everyone pirates your work.
I'm actually a designer, have paid for many fonts - including licenses for websites - have made a couple myself and have a good idea how hard they are to make.
That said, a certain corporation's bought up a load of fonts made over the past x decades and is making a tidy sum selling old rope again and again without adding anything of value, or funding the original designers/converters, so I'm quite happy to illuminate how an individual can get around such things for use on their personal blog with an audience of ten, should they so wish.
.
ed - you're also not as likely to be able to get a whole usable font from a small foundry in the first place, without buying it.
Fonts are (simplifying greatly) just code, right? I wonder when AI models will be able to cleanroom-clone the general look of a font without violating the copyright on the official version's underlying code.
I do a bit of graphic design for friends and family and am more than willing to spend like up to $100 on a nice typeface from smaller creators. It's just unfortunate many professional typefaces from the big foundries will charge you thousands of dollars for an entire family with strict usage limits. Like I'm just trying to make some holiday cards...
I get that they're trying to make their ROI back from enterprise customers who can justify paying thousands a month for their specific corporate font, but I would like to see more personal use, project based pricing that's affordable for hobbyist use
+1 — "just being lazy" is no excuse when you can just ask your LLM of choice for a free font recommendation similar to what you can't afford. If you absolutely can't live without using the paid font, of course you should pay for it!
You can't copyright basic geometric shapes either.
>there are plenty of perfectly legible typefaces that are completely free for you to use.
You mean there are plenty of bezier curved shapes which are within the public domain and no one can stop me. I'm not obligated to surrender my rights so you can turn typography into a business model. If you piss me off, I might just release tools that even stooges can use that copy the shapes out of the otf file, rearrange those completely so that no file fingerprinting will match, and has the user rename the files. I will go to war.
Legally, typeface designs do not receive protection (which is based on idiotic declarations like “you can’t copyright the alphabet”) but digital font files are considered programs and thus are able to be protected as IP.¹ You can try to justify the theft to yourself but somewhere there’s an individual (or on some occasions many individuals) who spent a long time making decisions about how that typeface should look and choosing the best points to turn it into splines to describe the shape and you decided that your laziness trumps their work.
⸻
1. I would note that bitmap fonts do not receive the same protection as Type 1 or OTF fonts.
>there are plenty of perfectly legible typefaces that are completely free for you to use.
Legally based off the carefully considered positions of philosophers of law like Thomas Jefferson, and others just as renowned, who actually created modern copyright law in the United States, because they weren't trying to set you up to be rent-seeking degenerate scribblers for the next umpteen millennia.
>but digital font files are considered programs
As precedented in case law by degenerate judges who should be brought up on treason charges. They aren't programs in any meaningful sense, culinary recipes are likely closer to programs (they, arguably, run on a Turing-complete machine, the human brain, and have something akin to branching going on once in awhile).
>You can try to justify the theft
What theft? No theft occurred, because I denied no one the possession of their own property. Even the judges and lawyers have to admit that this is at most infringement, so please use that word or just confess here and now that you'rea manipulative liar.
>I would note that bitmap fonts do not receive the same protection as Type 1 or OTF fonts.
What!?!?! Those aren't programs too? Please, consult the computer scientists, they must be informed! Are they also not stored as ones and zeroes?
As a designer, I've built variants of this several times throughout my career.
The author's approach is really good, and he hits on pretty much all the problems that arise from more naive approaches. In particular, using a perceptual colorspace, and how the most representative colour may not be the one that appears the most.
However, image processing makes my neck tingle because there are a lot of footguns. PNG bombs, anyone? I feel like any library needs to either be defensively programmed or explicit in its documentation.
The README says "Finding main colors of a reasonably sized image takes about 100ms" -- that's way too slow. I bet the operation takes a few hundred MB of RAM too.
For anyone that uses this, scale down your images substantially first, or only sample every N pixels. Avoid loading the whole thing into memory if possible, unless this handled serially by a job queue of some sort.
You can operate this kind of algorithm much faster and with less RAM usage on a small thumbnail than you would on a large input image. This makes performance concerns less of an issue. And prevents a whole class of OOM DoS vulnerabilities!
Author here: the library just accepts RGB8 bitmaps, probably coming either from Rust's image crate [1] or Python's Pillow [2], which are both mature and widely used. Dealing with codecs is way out of scope.
As for loading into memory at once: I suppose I could integrate with something like libvips and stream strips out of the decoded image without holding the entire bitmap, but that'd require substantially more glue and complexity. The current approach works fine for extracting dominant colours once to save in a database.
You're right that pre-resizing the images makes everything faster, but keep in mind that k-means still requires a pretty nontrivial amount of computation.
That'll stream the source image and make a RGBRGBRGB memory buffer of single precision floats. You could perhaps use kernel="linear" and avoid any ringing from lanczos3.
I think I would downsample in a linear light space, like scRGB. Averaging there means averaging photons, which will surely be better than OKLab. Maybe switch to OKLab for clustering. Though of course I've not tested it.
If you ever did want to wrap this in code processing untrusted images there's a library called "glycin" designed for that purpose (it's used by Loupe, the default Gnome image viewer).
Somehow I missed that, oops. I see that the library samples a maximum of 250K pixels from the input buffer (I jumped over to the project readme)
That being said, this is sampling the fixed-size input buffer for the purposes of determining the right colour. You still have to load the bitmap into memory, with all the associated footguns that arise there. The library just isn't making it worse :) I suppose you could memmap it.
Makes me wonder if the sub-sampling is actually a bit of a red herring, as ideally you'd want to be operating on a small input buffer anyway. Or some sort of interface on top of the raw pixel data, so you can load what's needed on-demand.
That's 500x500, I'm sure you can get good results at 32x32 or 64x64 but then part of your color choice is also getting done by the downsampling algorithm. I wonder if you could get away with just using a downsampling algorithm into a 1x1 and just use that as the main color.
That last one is talked about in the article -- it sucks!
I think if you were going to "downsample" for the purpose of creating a color set you could just scan through the picture and randomly select 10% (or whatever) of the pixels and apply k-means to that and not do any averaging which costs resources and makes your colors muddy.
Back in the late 1980s people thought about color quantization a lot because a lot of computers of the time had 16 or 256 colors you could choose out of a larger palette and if you chose well you could do pretty well with photographic images.
I think I've unintentionally trained myself to notice (and tune out) both AI illustrations and AI writing.
At a deep instinctual level, knowing that someone hasn't spent much time or effort creating the content makes me not want to reciprocate with time or effort.
I've realised that my brain literally tunes out AI illustrations, much as it does with ad banners.
Perhaps since they're easy to generate, I encounter illustration more -- it's no longer a signal of quality.
This is an issue on Linux too, especially when Wayland is used and applications are responsible for drawing their own chrome. Ugh.
HOWEVER, due to the open nature of the platform, you can install an extension to clean this up. Now, all my windows have identical corner radii, strokes, shadows etc. My Linux desktop is, surprisingly, more consistent now than macOS in this regard.
outlook.com and Office 365 are very different beasts. with the latter problems are more often something (mis)configured by the customer/administrator of the 365 account rather than microsoft themselves, and there are steps the customer can take to work around the issue. With outlook.com there is nothing the recipient can do.
All the immutable system solutions out there pretty much all make your rootfs immutable, but leave your home folder and system config folders (i.e. /var and /etc) as mutable. It's pretty obvious that if you make the config folders and/or home folder immutable it starts causing most people problems, since in the vast majority of cases people just want to be able to persistently change the desktop background color or spaces vs tabs setting in their IDE without having to locate the setting in a full system config, set it, and regenerate.
This does cause some interesting tension in the immutability though. /etc in particular is really a mix of things that a sysadmin should really only be setting, and things a regular user may set indirectly. This usage has grown organically over time with the tools involved in the implementation, so it's not at all consistent which are which. The immutable system solutions recognize this by usually handling the whole /etc folder the same way package managers handle package installs that include /etc file: by doing a 3-way merge between the old provided files, the new provided files, and the current existing files to see if the existing are unchanged from the old provided and can just be directly replaced by the new provided or if a merge conflict needs resolving. Additionally, a separate copy of /etc is maintained associated with each available bootable system version so when you roll back you get the old /etc files you had before. Though this does introduce a system-unique variation since you now have new /etc being affected by the state of /etc when it was forked.
If you want all your home folder and system config to be identical, nix or guix really are your primary way to go, that extra lockdown of the user and system config is exactly what most people don't want for usability reasons.
I personally use nix home-manager on top of Aurora DX from Universal Blue. I have my nix home-manager config setup to manage only the things I want to be locked down in my home config, and to provide some extra tools that are easier to manage/supply via Nix than a system package manager (where I would need to do a whole system update to get the new version). My IDE for example is installed on a specific version via Nix, but I don't have Nix manage the settings of it so I can separately tweak as needed without need a home-manager rebuild.
> customized via a Containerfile could work too? Except rebooting/reimagine for every change sounds tedious as hell.
You can do this today with Aurora, Bazzite, Bluefin, and other bootc systems. The system updates by default are weekly and require a reboot but when you move most of the stuff into the userspace most of that stuff updates independently anyway.
In fact, if you want to use something like Nix on a UniversalBlue system, you have to spin your own. The "hotfix" and chattr solutions of pre-composefs don't work anymore.
Anything that needs to go into a read only location and isn't package as an RPM requires you to "spin your own".
Luckily UniversalBlue makes it incredibly easy, they have a template repo you can use that has all the GitHub action setup included to auto-bills on every change, and directions for how to set it up. It took me about 10 minutes
Apart from NixOS and GuixSD there's also Arkane Linux (<https://www.arkanelinux.org/>), which seems kind of interesting, but I don't like various decisions it makes.
Honestly, there aren't that many crazy people on the SF Muni/busses. The detractor for taking these services is speed and frequency.
Even factoring in parking, traffic, and bus lanes, it's much faster to drive within SF than take the bus. Stopping every 2 blocks and missing every other green light kills throughput.
My local bus stop to connect to BART supposedly had service every 20 mins, but often a bus would be out of service and the wait would be 30-40 minutes. Unless a bus was right there, it was faster to walk.
The crazy people depend a lot on routes, the part of the city, and the time of day. E.g. the 1 (Sacramento St/California St) is basically fine all the time. The 38 (Geary) and 14 (Mission) are OK during the commute rush since they are packed full of commuters, but outside of those times, you will eventually see all kinds of unsocial behavior (shouting, fights, defecation, etc.), especially closer to civic center/tenderloin/mission.
Learning that it was almost always faster to walk from 4th and King to my place in the TL in the three hour period around "rush hour", and often faster late at night -depending on how out of sync the bus and Caltrain arrival times were- was lifechanging in a couple of ways.
Because of Muni's inability to stick to schedule, [0] the Nextbus displays are absolutely essential for making the "Do I walk, or do I wait?" decision. I hate stops that don't have them.
It's a damn shame that the city didn't build many more subway lines during the boom times.
[0] Granted, it's not entirely their fault; they have to contend with SF traffic, too.
> Honestly, there aren't that many crazy people on the SF Muni/busses. The detractor for taking these services is speed and frequency.
Everyone can form their own opinion on the acceptable number of visibly intoxicated people they’d like to encounter. That said, my understanding of the law is that the correct number is zero. So seeing more than zero is an indication that laws are not being enforced.
People can debate whether particular laws regarding drug use are justified. However, if enforcement itself is optional, one might reasonably question whether that applies to other, less controversial laws as well.
> What is the correct number of crazy people you think you should meet on the bus?
As many as you'd expect to meet given how many choose to use the bus to go somewhere.
Retorts:
"Buses shouldn't be mobile homeless shelters." Sure, I agree. But I also agree that someone who has paid their fare and isn't disrupting the safe operation of the bus is entitled to ride the bus. If I want to purchase a ticket and sit my ass down for an hour and a half [0] to watch the city go by, then -assuming there's a seat available for my ass- I'm entitled to do that.
"I shouldn't have to sit next to smelly people." It's not just the poor or crazy that can be smelly. Your diet influences your odor, and some diets make you smell very strongly. Some folks just douse on the perfumes and that sort of thing triggers the migraine headaches of some other folks. As you age, you may lose reliable control of your bladder and bowels. ("Adult undergarments" are a thing people buy for a reason, after all.)
"I shouldn't feel uncomfortable in public." I'm sympathetic, but it's simply a fact of life that you will sometimes feel uncomfortable when around other people.
[0] Last I checked, Muni tickets offer gratis transfers to any other bus or train for 90 minutes after the time of purchase. OTOH, operators rarely check the validity of the tickets of riders, so -IMO- sitting on transit all damn day is fine by me... just so long as you get another ticket if yours is expired and the operator requests that you do so.
In the US, buses (and public transport in general), are thought of as social programmes. Anyone can use them, but they are really for people who can't drive or are too poor to own a car.
The rider makeup then looks like that. The elderly and the poor, sadly. Services run at a huge loss and are dependent on massive and unpopular government subsidies. Quality of service is bad. There's a stigma to using it. You end up with long, slow bus lines because this allows as many of the current demographic (elderly, poor) to take the bus. And there are always bailouts or brutal cuts on the horizon. You end up at a sort-of local maxima of inadequacy.
In an alternate universe, public transport is run to compete with the car, and attracts all demographics. Day-to-day operations are un-subsidised, and therefore relatively expensive. It competes on value. People use it because it's a better experience than driving.
This alternate universe is a city like London. Transport for London has a balanced budget, and despite what grumpy Brits like to say, quality of service is on an ever-upwards trajectory.
In my opinion, operating transport as transportation programme, not a social programme, is how you get more adoption in the long term. You make public transport attractive to more demographics.
Then there's the even better alternate universe. Japan, where there are ~100 train companies, almost all of them are private. There are at least 10 in Tokyo, all but one are private. They are setup so that they have a positive feedback loop. Each train company owns land at and around the trains stops. They open office buildings, apartments, groceries stores and shopping centers around those stops. The more people ride their trains, the better their other businesses do. The more compelling their other businesses are, the more people want to ride their trains to get to them. The also often run buses so you can take a bus to their stations.
These means the trains constantly improve and there's no poltitians trying to cut funding or under budgetting. The 10 companies in Tokyo I can name are JR East, Eiden, Toei, Tokyu, Seibu, Tobu, Odakyu, Keio, Keikyu, Keisei. There are actually more but they generally run 1 line each, at least at the moment.
Of those, only Toei (4 lines) are run by the government. Eiden (the Tokyo Subway) is private but gets some goverment backing. The others are all private. JR East was public in the 70s. The other 7 have always been private.
Unsurprisingly, only Toei, the government run one, is not setup with all of the positive feedback loops that keep the others going.
Note that it's similar in the Osaka/Kyoto/Kobe area. JR West and 5 other big companies, 3 subway companies, a bunch of other 1/2 line companies.
Another thing to note is, AFAICT, the population density of Kyoto is generally less than Los Angeles but they have great transporation from these private companies.
Conversely, the London Underground has had notorious underfunding issues.
Spot-on analysis. I agree that transport should operate on a basically break-even basis, but offset in two ways:
1. Where the Government wants to subsidize some group (e.g. help the disadvantaged by giving them discounts) they should pay the fair price to the transit agency out of the budget of Welfare, not drag on the financials of the transport agency. In other words, it shouldn't be possible that the transport agency is insolvent only because most of their customers are paying next to nothing. Discussions about whether we should spend a certain sum on subsidizing the poor to ride the bus/train/etc are purely welfare budget discussions.
2. The Government should move additional money into the system when they realize an expansion of transport helps further societal goals: e.g. congestion pricing funds should help to expand transit, or the government pays part of the cost to build new rail service to reduce congestion on the roads.
Incidentally, London has a "Freedom Pass" (free transport for retirees), which is funded in the way you describe.
Instead of TfL being forced to take the loss, they are reimbursed by local government cost of the transport.
As an aside, I also take some issue with this pass being completely free to use. In my experience, people end up using it to go a single stop just because it's free, so why not -- which slows bus service for everyone else. I think it should be 20p per journey or something like that.
I agree and disagree with this. Sometimes older people using the busses are what keeps the routes busy and makes it worth running a good service for everyone else. But on the other hand, I have seen abuses. Years ago I somehow got chatting to a fellow bus passenger who liked to ride the busses all day as a hobby. I think rather than charging I'd limit it to 10 free rides a week or something, where a ride is equivalent to a hopper fair - as many connections as you need within an hour of the first touch-in. After that it should use pre-pay credit at a normal rate.
Idk... If the tiny population of those bored "hobbyists" taking up space is the only reason a given route was overcrowded, I'd be surprised. If it's basically at capacity in general, I'd rather they add more busses than to crack down on the elderly, because I guarantee that if you just subtracted those "abusers" (and not elderly people who actually need to ride the bus for legitimate trips) the same bus would still be basically as crowded.
Fare-charging for public transit has significant frictional overhead. I think in Luxembourg they just made it all free and it didn't cost much money because they didn't need to spend anything on collecting fares. The D-Ticket in Germany too: in some cities, almost everyone has a D-Ticket so the frequency of ticket checks was drastically reduced.
Another counterpoint: if the bus isn't overloaded, taking an additional passenger costs next to nothing, while delivering significant value to the passenger. Don't we want to create as much value as possible?
You can see that a long-distance train has doors only at the end of carriages, and stops for several minutes, but a subway has doors about every 10 seats, and stops for 20 seconds.
Taking such a fee also has transaction costs, in the time if nothing else.
To liken this back to the old days - the difference in time between flashing a valid transfer slip (of paper) and having to drop change into the automated till.
Nowadays, both are “scan your card at entry and exit”, aren’t they?
Elderly will have to do that, too, because a) I expect they still want to track usage, and b) allowing some passengers to hop on a bus without checking in makes it too easy for those ineligible to do that (e.g. elderly who do not live in London) to try and do that, too.
Elderly in all of England have the equivalent of a Freedom Pass but just for busses (Freedom Passes include almost all Tfl transport, e.g. underground, trams, DLR and some Nationbal Rail inside London)
Unfortunately the bus passes and freedom passes are not interchangeable and sometimes have to be manually checked if not in the local region,
It's a chicken and egg problem. The way to make buses competitive is to build bus only lanes. But to do that you end up removing a lane for drivers and dedicating enforcement resources to keeping bus lanes free of private vehicle traffic.
The usual pattern is when a bus only lane is proposed, drivers complain because they view the bus as a social program. Local legislators often take the drivers' side because they also view the bus as a social program. Even if you get the political capital to push a bus only lane, traffic enforcement will routinely ignore bus lane violations. LA is making waves on the latter problem by attaching cameras to buses which automatically write tickets for cars blocking the bus lane.
Ultimately it's a politics problem. If nobody wants to spend political capital on running a bus system as a transport program, it ends up as a social program.
> In an alternate universe, public transport is run to compete with the car, and attracts all demographics. Day-to-day operations are un-subsidised, and therefore relatively expensive. It competes on value. People use it because it's a better experience than driving.
The problem with this in the US is that it's nearly impossible for the bus to be faster than a car without making the car slower on purpose, and the latter is the thing which is going to create the most opposition, because you're essentially screwing people over during the transition period -- which would take years if not decades.
In the meantime people still can't take the bus because the higher density housing that makes mass transit viable where they live hasn't been built yet etc., and as long as they're stuck in a car they're going to fight you hard if you try to make being stuck in a car even worse.
Meanwhile, cars are expensive. ~$500/mo for a typical car payment, another $100+ for insurance, another $100+ for gas, you're already at $8400+/year per vehicle before adding repairs and maintenance etc. For a two-car household that's more than 20% of the median household income. Make mass transit completely free and people start preferring the housing where mass transit is viable, which means more of it gets built, which is the thing you need to actually make it work.
Induced demand is a rubbish theory to begin with. The effect is explained by insufficient capacity suppressing natural demand, which returns when capacity is increased and thereby consumes some or all of the added capacity until you have enough capacity for the actual demand.
But it's especially rubbish when converting an existing lane, because the existing lane will have already allowed the demand to be high, e.g. people already built houses outside the range of mass transit and those residents are now locked in to using that road in cars, and you then remove the lane even though the demand is sticky.
Even in a dense city with no parking, it takes an unusually fast and frequent bus to compete with a brisk walk, and a heavy-rail subway to beat a fit or electric-assisted cyclist.
And the average commute duration is around 27 minutes. If you happened to live in one of the very few places in America where there even are 15 urban miles to cross, doing it at city bus speeds of under 10mph would be a catastrophic collapse in your standard of living.
> doing it at city bus speeds of under 10mph would be a catastrophic collapse in your standard of living.
LA average vehicle speed during rush hour is 27.6km/h (17 mph) according to Tom Tom [1]. So a 10 mph bus would turn that 27 minute journey into 46 minutes which I'll admit is more than desirable, hardly catastrophic though.
But remember that each bus can carry about fifty people which would remove close to fifty cars from the road resulting in less congestion and faster buses. Fifty cars need 400 m of road, one bus needs only 20 m.
And on your way home you can doze in your seat without causing an accident.
There is another interesting US-centric perspective here. For some reason, US consumers feel the need to drive new or nearly-new cars.
$5000 can get you a reliable but unsexy used car. I think there is a sort of "Parkinson's law" of consumer spending at play, where financial outgoings will expand to match disposable income.
I also think there's a problem with fixed spend (e.g. car payment, insurance) vs per-trip spend. Per-trip costs are felt more.
A reason that public transport is often more popular in European cities because driving isn't even an option. There's literally nowhere to park. Even the rich need to get around, and this creates pressure to improve non-car transport from all sides.
> $5000 can get you a reliable but unsexy used car.
$5000 can get you a 10+ year old used car with 100,000+ miles on it and no warranty. That's fine if you know how to do repairs and maintenance yourself, because then you're buying a part from the internet with a low markup and installing it yourself instead of paying four times as much for someone else to do it. But not every knows how to do that, or has time, or knows how to tell if a used car with no warranty will be reliable before buying it. And if you plop $5000 down on something with no warranty and then have to scrap it after the first year because your $5000 car needs a $5500 new engine, you're not saving money.
There is also the matter of where used cars come from. You can get one for $5000 because someone paid $30,000 to buy it new ten years ago. If more people did that, fewer new cars are sold and then fewer enter the used market and used car prices go up. So you can buy a used car for $5000, but it's not possible for "most people" to do that because if they tried to, they would no longer be available for $5000.
> I also think there's a problem with fixed spend (e.g. car payment, insurance) vs per-trip spend. Per-trip costs are felt more.
Which is the problem with mass transit. You get in your car and it feels like it costs nothing, the only thing that changed is the gas gauge went down by half a tank and the odometer went up. Meanwhile the amortized cost was actually over $100. Then you go to get on the train and you immediately have to swipe your card and get a bill for $40, which feels like a lot for one trip.
Worse, the car is $100+ per trip only if you're amortizing the fixed costs, i.e. comparing to the alternative of not having a car at all. If the fixed costs of having the car are sunk, the incremental cost of the trip is maybe $15, and then when the train is $40, nobody with a car is saving money to take the train when they can.
Whereas if the train is $0, then it's "hey that goes right where I'm going this time and I don't have to buy gas". Which, if it happens often enough, means more people don't need a car to begin with.
> A reason that public transport is often more popular in European cities because driving isn't even an option.
Obviously if you make something unavailable then people use alternatives. But in the US it's the other way around -- half the population lives in the suburbs where there is no public transport, nor can there be because the density is too low.
So then you need to find ways to make public transit more attractive (like eliminating the fares) rather than making cars less attractive, because making cars less attractive is going to encounter major opposition from the people who have no available option other than to use cars.
This idea occurred to me while I was traveling in Europe. Many of their trains have two classes of cars, where the first class is just slightly nicer. This could be done with buses too. Just alternate buses on the same route, that are expensive and free. The poor can take the free bus, and those who want a more exclusive social experience can pay for the expensive bus.
I can't make any excuses for the social and class implications, but if it got more people on the bus, it might only need to be a temporary measure.
I believe we already have that, and it's called a cab. You pay extra, get an exclusive social experience and, at least in some parts of the world, get to share the bus lanes with other folks taking the bus.
Private car ownership is a better everyday solution for almost anyone who can afford it, which includes the vast majority of Americans. If buses tried to compete with cars, they would lose. The only remaining niche for the bus is as a public accommodation for the poor, disabled, and elderly, or occasionally in dense city centers.
At least that’s what I think. But if you’re right, and there’s a version of bus transport that’s viable without subsidy, then there should be a market opportunity for a private business to provide that type of bus transport. This actually exists for long range intercity buses already, but you’d think it should be possible inside of some cities. I haven’t looked into this in a lot of detail but I wouldn’t be surprised if it was effectively impossible to try and start a private bus service in most cities, specifically because that would reduce ridership of city transit and threaten all of the unionized public sector jobs in that system. In which case the bus system isn’t really even for the poor and elderly anymore; it’s for the transit workers union, which undoubtedly is a player in city politics.
But this comes down to how your city is planned. Amsterdam and the Netherlands in general is making it much less attractive to be a driver, for example. Public transportation has its own dedicated roads and even entire regions where cars aren't allowed, bicycles are first class citizens that take equal if not more consideration when streets are designed, streetside parking is limited and getting even more so with basically every city having as a goal the reduction of the number of parking spaces.
Of course, there's still plenty of drivers, but the nice thing is that you have options here. Why would I want to drive if I can just take the metro, or tram, or train, or hell just cycle? Within Dutch cities cycling is often much faster than any other mode of transport, and the great thing is that everyone uses the cycling infra, young or old, rich or poor, able bodied and otherwise.
I think it isn't as absolute as you suggest, and that it depends on city planning. I own a car but in the city I live it is not a better solution for everyday trips. Walking, cycling, or bus/tram are all far more convenient - it is only when leaving the city that the car becomes better.
(Even then, it depends on the destination - if it's to another city then the intercity trains are still better but for 2+ people it ends up being the premium/expensive option and the car is cheaper.)
If people without cars could stop subsidizing those with one i would agree (and include the lost land to mandatory parking places in your account). Car driver should pay a specific tax for that. A bus just need a lane on every road direction and no parking (and use it less than hundred of cars).
Private car ownership is better everyday for suburbs and rural areas but in cities that is not true. Public transit can improve downtown access and reduce congestion. You need some density for transit.
It’s a large percentage of total bus revenue by design, and a significant expense for some local governments. But the number only look large because of how we split the vast majority of government spending into federal and state budgets with local budgets being relatively anemic by comparison.
Buses are implicitly subsidized by road maintenance spending. Road wear and tear occurs according to the fourth power of axle weight, which effectively means almost all of the wear and tear is incurred by the heaviest vehicles, which include buses.
Roads still need maintenance even if nobody uses them, so a significant portion is split evenly across all traffic.
Busses are light compared to 18 wheelers and other heavy equipment, they also replace many cars and SUV’s which keep getting heavier.
Finally that rule of thumb isn’t really that accurate, “A 1988 report by the Australian Road Research Board stated that the rule is a good approximation for rutting damage, but an exponent of 2 (rather than 4) is more appropriate to estimate fatigue cracking.” Rutting really isn’t that significant in most cases, but can instantly destroy road surfaces when fully loaded construction vehicles etc drive over something once.
> Roads still need maintenance even if nobody uses them, so a significant portion is split evenly across all traffic.
Your former doesn't imply the latter. Here in Seattle we even still have cobblestone roads without heavy traffic and they spend very little money on them.
We have extensive rutting damage on the lanes use by busses and requires more expensive, deeper road base when they get replaced. This cost is due to the heavy traffic.
Even if squared, the buses are still 22 tons instead of 2-3 tons. 49 times more damage isn't good.
22 tons are huge busses and overkill unless you actually need that much space, and tend to have 4 axles. ((22 / 4)/(3/2)) ~= 13.5x a heavy SUV but could be replacing 30+ vehicles.
Also that visible ware is noticeable because it hasn’t been replaced. Looking worse when you resurface on the same schedule isn’t an actual cost.
But those are what we have and they have 3 axles, not 4.
We also have many concrete roads and closely-spaced axles, if they had them, would not help.
> Looking worse when you resurface on the same schedule isn’t an actual cost.
I addressed this: they have to dig much deeper and replace with much thicker road. Much more expensive. It's not "looking worse", it's actively dangerous to cyclists and other road users, so the surface must be replaced more often too.
Closely space axels work fine for road surfaces they don’t help on bridges but that’s a separate concern. You can see a plethora of heavy military vehicles etc which use extra axles to avoid getting stuck in the mud due to plastic deformation IE rutting. EX: The 22 ton KTO drives has to deal with rutting on vastly worse road surfaces like mud. https://en.wikipedia.org/wiki/KTO_Rosomak
But this is where you need to do a deeper analysis than just a simple rule of thumb. Even adding extra wheels to the same axle makes a big difference to road surfaces.
> so the surface must be replaced more often too.
Level of ruts you see are considered acceptable or they would be replaced.
However, ultimately the same entity is paying for the busses and road maintenance. If lighter busses saved taxpayers money that’s what they would use which is a major sign your analysis is inherently flawed.
> Level of ruts you see are considered acceptable or they would be replaced.
I guess you don't know how the USA works, and Seattle in particular. We are spending a fraction of what is necessary to keep infrastructure from failing. We had a major bridge nearly collapse and was out of commission for years. https://www.king5.com/article/news/local/seattle/seattle-dep...
Many of our roads are not what we call acceptable.
> However, ultimately the same entity is paying for the busses and road maintenance.
Hahaha nope. We have so many different organizations with their own funding sources. Roads come from State and local funds. Metro is primarily funded with dedicated sales tax.
> If lighter busses saved taxpayers money that’s what they would use which is a major sign your analysis is inherently flawed.
Sorry, but this is possibly the most naive thing I've ever heard.
> We are spending a fraction of what is necessary to keep infrastructure from failing.
I can’t help but chuckle at the idea you actually believe that. Stop reading headlines and do some actual research into what’s actually going on.
If the US was utterly failing in maintenance you’d see ~6,000 random bridge failures per year based on the number of bridges in existence instead they are incredibly rare showing that we are actually doing a great job overall.
>They don’t replace nearly enough cars and SUV’s to make up for the difference in fourth power of axle weight
A modest bus holds 40-50 people. Most commuter traffic is single driver, single vehicle. I don't know to which power the difference in axle weight would have to be to surpass the efficiency gains of replacing 40 to 50 American sized SUVs with a city bus, but I suspect it's more than four.
At the heavy end, SUVs weigh about 3 tonnes, while at the light end buses weigh about 12, a 4x difference. 4^4 = 256. So if the claim about the fourth power is true, you'd need to replace 256 SUVs to break even on wear, which is obviously impossible.
(I don't really understand how the fourth power of axel weight thing can possibly be true, though. Why would joining two vehicles together into a mega vehicle with double the weight and double the wheel count suddenly cause the combined vehicle to inflict 16x more wear than before you joined the two together? It makes no sense.)
A Ford F-150 weighs about 2 tons and has two axles, for an axle weight of 1 ton. 1^4=1.
A garbage truck weighs maybe 30 tons and has three axles, for an axle weight of 10 tons. 10^4=10,000.
So if you drive an F-150, you’re doing as much road damage driving down the street 10,000 times as the garbage truck does once. Rural areas that don’t have garbage trucks and just expect everyone to haul their garbage to the dump in the back of their pickups are onto something.
Ah, right, sorry, I misunderstood the definition of "axle weight" I got when I hurriedly googled it even though the name should've made the meaning obvious.
The classic British Routemaster double decker weighs 7.5 tonne and can be configured with 72 seats. Newer double deckers weigh 12.5 tonne and have a capacity of 60 seated and 20 standing.
Doubling the weight and doubling the wheel count leaves the axle weight unchanged.
Plus the SUV is usually point-to-point, leave home, go to work, come back. Whereas the bus is going back and forth ten times per day.
In Europe, the numbers differ even more. Lighter weight cars typically 1.5-2 tons, a new London bus can be upto 18 tons when loaded - that's ~5-16 units of wear for the car to 104,976 units for the bus...
But this is all supposing we're optimising for road wear, which isn't really the point of a bus system.
Axle weight and vehicle weight aren't the same (or even very closely correlated). A bus will weight ~3-4x more than a car, but has wider tires, and carrying far more people. As such the weight of a bus is likely similar to or lower than an equivalent number of cars.
Here in Seattle, the busy roads with older lanes used for buses are obvious, because they have two deep canyons while the lane next to them is fine. In fact King County Metro has to pay millions in fines to the state because the buses are excessively heavy.
No roads without bus traffic have the same type of damage.
Which is part of the reason to know that axle weight alone isn't a sufficient scale. If you connect 2 cars axle to axle, they won't start doing 8x as much damage. What matters is axle weight divided by tire width.
Nope, that's not correct, except that two cars would be spread across two lanes. PSI is not the only factor. Take, for example, our concrete road panels here in Seattle. The weight on one end forces that side of the panel down, stressing the connection to the previous panel, and also lifting the panel from the front. That force is not significantly changed by tire width.
I wish you did a little more studying before talking so authoritatively.
In the US, the roads aren't break even either. They are massively subsidized, but people don't even think about it, whereas with public transit the expectation is that it should break even. We aren't comparing like for like.
I wonder what the performance characteristics are?
I'm assuming this is going to work well for small datasets that fit in memory, and probably less well beyond that. So good for config, context etc.
Also curious how the tables and index are maintained, for example if there's a write heavy workload. Does TigerFS handle rebuilding/repacking and the associated drudgery?
reply