FTA: “Heap allocations made by the function are erased as soon as the garbage collector decides they are no longer reachable”
I think that means this proposal adds a very specific form of finalisers to go.
How is that implemented efficiently? I can think of doing something akin to NSAutoReleasePool (https://developer.apple.com/documentation/foundation/nsautor...), with all allocations inside a `secret.Do` block going into a separate section of the heap (like a new generation), and, on exit of the block, the runtime doing a GC cycle, collecting and clearing every now inaccessible object in that section of the heap.
It can’t do that, though, because the article also says:
“Heap allocations are only erased if the program drops all references to them, and then the garbage collector notices that those references are gone. The program controls the first part, but the second part depends on when the runtime decides to act”
and I think what I am thinking of will guarantee that the garbage collector will eagerly erase any heap allocations that can be freed.
Also, the requirement “ the program drops all references to them” means this is not a 100% free lunch. You can’t simply wrap your code in a `secret.Do` and expect your code to be free of leaking secrets.
> Speaking to reporters Thursday night, though, Epic founder and CEO Tim Sweeney said he believes those should be “super super minor fees,” on the order of “tens or hundreds of dollars” every time an iOS app update goes through Apple for review. That should be more than enough to compensate the employees reviewing the apps to make sure outside payment links are not scams
I would think making sure outside payment links aren’t scams will be more expensive than that because checking that once isn’t sufficient. Scammers will update the target of such links, so you can’t just check this at app submission time. You also will have to check from around the world, from different IP address ranges, outside California business hours, etc, because scammer are smart enough to use such info to decide whether to show their scammy page.
Also, even if it becomes ‘only’ hundreds of dollars, I guess only large companies will be able to afford providing an option for outside payments.
They ferociously check everything that goes out of an app.
If you have a hint of a payment button 15 clicked after leaving your support page through the site logo link your app would get immediately flagged for removal unless you deal with it within week or two give to you.
> CEO Tim Sweeney said he believes those should be “super super minor fees”
He seems to be ignoring the part of the ruling finding that Apple is entitled to "some compensation" for the use of its intellectual property.
> The appeals court recommends that the district court calculate a commission that is based on the costs that are necessary for its coordination of external links for linked-out purchases, along with "some compensation" for the use of its intellectual property. Costs should not include commission for security and privacy.
It's a little more nuanced than simply "some compensation" - and IANAL but it seems like the court is saying this fee should as Sweeney posits be very small:
> Apple should be able to charge a commission on linked-out purchases based on the costs that are genuinely and reasonably necessary for its coordination of external links for linked-out purchases, but no more.
> In making a determination of Apple’s necessary costs, Apple is entitled to some compensation for the use of its intellectual property that is directly used in permitting Epic and others to consummate linked-out purchases.
> In deciding how much that should be, the district court should consider the fact that most of the intellectual property at issue is already used to facilitate IAP, and costs attributed to linked-out purchases should be reduced equitably and proportionately;
> Apple should receive no commission for the security and privacy features it offers to external links, and its calculation of its necessary costs for external links should not include the cost associated with the security and privacy features it offers with its IAP;
I don't think a percentage makes any sense at all. Is it proportionately more expensive to host a $50 game than a $25 game? It's only a percentage Because They Can.
I agree. Charging a blanket percentage of gross revenue is an extremely inexact way to monetize what is a broad basket of services that were previously separate including: electronic software delivery, software security verification, marketplace, transaction processing, DRM, etc. Since 2009, first on Apple's app store and then Google's, these services have all been arbitrarily bundled together despite having vastly different one-time, fixed and variable costs. People are only used to it in this context where every marketplace has been controlled by a monopolist gatekeeper.
Doing it this way makes no economic sense for either the seller or the buyer but it's coincidentally the absolute best way for a middleman to maximize the tax they can extract from a two-sided marketplace they control. In competitive markets, blanket taxing on total gross revenue generally only occurs when there's a single fundamental cost structure tied to that revenue, or the amounts being collected are so small it's de minimis. App stores are highly profitable, multi-billion dollar businesses.
Perhaps the most perverse thing about this is that electronic transactions for purely digital goods which occur entirely on real-time connected digital platforms make it trivial to price each service for maximum efficiency. It's easy for the price a 2GB game with frequent updates pays for electronic delivery to reflect the cost they impose on the infrastructure while a 100k one-time purchase app can pay a vastly smaller amount. And that's exactly the way the competitive marketplaces evolve - from moving shipping containers around the planet to residential propane delivery.
I'm by no means defending the percentage they take, but I would suggest that it's a percentage because it's simple:
Pick 3 imaginary games for sale priced at $1, $10 and $100. Any one of those games could be a million download a month success, and any one of them could be a complete dud.
What flat rate would you suggest to:
* Pay the developer for their work (ongoing per sale)
* Review each game and ensure it meets store guidelines (once per update)
* Host said game regardless of how popular it is (ongoing)
* Process transactions for the game (ongoing)
The alternative would be pricing based on revenue tiers (similar to what Unreal Engine does now), which aren't known in advance and don't take global variance into account (USD$200 in Eastern Europe might be a month's salary).
Percentage is just simpler. It also means that they'd be taking a loss on every free app or in the case of Free-to-Download In-App purchase apps - until users start transacting.
Why isn't this applied to income taxes first? Does the government deserve a percentage with no cap of whatever you make? Your government services don't get better for you the more you pay.
That is the hill you want to die on? The fact that at income levels greatly above the median income, taxes aren't capped?
You should look at it the other way, where ANY income or income equivalent, of any kind, should be taxed like income.
So when Bezos spends $5bn per year, that means he made $5bn per year (at least), so his tax statement should show him paying $2bn or whatever the top tax rate would imply.
Well it's based on sales, not cost. In theory, a more popular game is a larger stress on servers, so charging them more makes sense.
The scaling also helps so that some (probably most) games aren't losing money to be hosted kn a store. That would be catastrophic as at some point games would need to remove themselves to name financial sense.
If Epic deserves a 12% cut of a Windows game sold through their store (despite not having paid the costs associated with developing and maintaining Windows) how large a cut should you get when you did incur the additional costs of creating and maintaining the platform?
Yes, if Epic sold an Epic computer which had > 50% marketshare and and you could only purchase products from their store.
The only other category you can really compare this to is game consoles, but the hardware is sold at a much smaller margin and they still (for now) support physical media.
Thats after you make a million dollars though. It's free until then.
"0% Store Fee For First $1,000,000 in Revenue Per App Per Year
Starting in June 2025, for any Epic Games Store payments we process, developers will pay a 0% revenue share on their first $1,000,000 in revenue per app per year, and then our regular 88%/12% revenue share when they earn more than that.
"
12 sounds fine. I won't object to lower but 3-6 % is what most other modern digital platforms charge. Adding your own 3-6% on top a payment processor as a platform hostong content sounds reasonable.
EU courts did cap payment processor fees, so yeah that is intended. We can't have companies bottleneck and take excessive fees and thus stifle progress, when a company gets too powerful the government has to step in.
I'll never say no to properly auditing our systems. So sure.
But I also recognize that few out there are pressing strong opposition to the idea of paying 3% for someone else to manage their financial transactions, or to host their own business. If I make a million dollars, paying 50k to Patreon or Kickstarter for hosting the service seems to make sense in my mind
Every single PC developer is fully able to release PCs games to customers without paying Epic a dime.
So, to you answer your question, the fee that Epic should take is exactly the same as Apple's. It is exactly Zero dollars for all apps that do not go through their app store. Thats already how it works though.
It, of course, would be absurd if Epic was able to force you to pay them money for apps that don't involve Epic in any way and dont go through their app store!
Doesn’t Epic charge a 5% royalty for any games developed on Unreal Engine regardless of where or how the money is collected or what app store it’s installed from? Why can’t Apple collect fees for any apps that are built on their software AND hardware?
0.27% + credit card interchange fees feels more than fair to me. Apple should be thanking their lucky stars that the court isn’t forcing them to spin off the App Store business and pay back every stolen cent from their criminal bundling scheme. This makes IE + Windows look so innocent in comparison. Hardware manufacturers shouldn’t be allowed to mandate a monopoly on software distribution. Full stop.
> I would think making sure outside payment links aren’t scams will be more expensive than that because checking that once isn’t sufficient.
Ignoring the fact Apple isn't doing that anyway right now as others have pointed out:
There are multiple ways to make sure of that without it costing any significant money, eg hashing all scripts that are served on the link and making sure they're the same since review.
Not that they'd ever do the review to begin with, so the hashing won't be done either, but it's something that could be done on iOS/ipados.
And if you consider that infeasible, you might want to check out current CSP best practices, you might be surprised
Epic founder and CEO Tim Sweeney said he believes those should be “super super minor fees,” on the order of “tens or hundreds of dollars” every time an iOS app update goes through Apple for review. That should be more than enough to compensate the employees reviewing the apps to make sure outside payment links are not scams and lead to a system of “normal fees for normal businesses that sell normal things to normal customers,” Sweeney said.
Tens to hundreds every time an app goes through review is "super supor minor"... This is how you know Epic has the backs of all the indie devs who fret about $100/year dev membership.
This isn't about whether Apple allows outside payment links or not. It's about whether Apple takes a percentage cut from outside payments.
Is Apple actually checking outside payments for scams outside of review times? Do they check non-payment links for scams outside of review times? How often?
The point is that they should only be able to charge a fee for work they are truly doing, and it shouldn't be retaliatory.
Maybe it wouldn't hurt to have rarer and more thoughtful releases.
Or we end up with this modern disease where the OS wants to update itself, the browser needs to update itself, Acrobat wants to update itself, etc, etc, all the time.
> I would think making sure outside payment links aren’t scams will be more expensive than that because checking that once isn’t sufficient.
According to the ruling on page 42, "(c) Apple should receive no commission for the security and privacy features it offers to external links, and its calculation of its necessary costs for external links should not include the cost associated with the security and privacy features it offers with its IAP"
> Apple should receive no commission for the security and privacy features it offers to external links
I'm not versed in legalese, so maybe I misunderstand. Isn't it reasonable that Apple receives money for a service they provide, that costs money to run?
The case is really about the opposite: "what payment related services is Apple allowed to force people to use (and therefore pay for)". The court concluded that excludes both the payment service itself as well as the validation of the security of external payment services used in its place.
A service to whom? Protecting users is a service to users, not to developers. This is a selling point of iPhone, and thus Apple receives money from users when they pay for the iPhone.
Think about it this way: totally free apps with no IAP get reviewed by Apple too, and there's no charge to the developer except the $99 Apple Developer Program membership fee, which Epic already pays too.
> Think about it this way: totally free apps with no IAP get reviewed by Apple too, and there's no charge to the developer except the $99 Apple Developer Program membership fee
Yearly fee. And about $500 a year in hardware depreciation, because you can reasonably develop for Apple _only_ on Apple hardware.
This is _way_ more than Microsoft has ever charged, btw.
> I would think making sure outside payment links aren’t scams will be more expensive than that
You really think that the aggregate cost of fraud mitigation in the app store is 30% of revenue? That seems laughable, the credit card industry as a whole does far, far better than that with far less ability to audit and control transaction use.
When given a 5-star choice “very bad/bad/ok-ish/good/very good”, I rarely pick one of the extremes.
I suspect there are others who rarely click “bad” or “good”.
Because of that, I think you first need to train a model on scaling each user’s judgments to a common unit. That likely won’t work well for users that you have little data on.
So, it’s quite possible that a ML model trained on a 3-way choice “very bad or bad/OK-ish/good or very good” won’t do much worse than on given the full 5-way choice.
I think it also is likely that users will be less likely to click on a question the more choices you give them (that certainly is the case if the number of choices gets very high as in having to separately rate a movie’s acting, scenery, plot, etc)
Combined, that may mean given users less choice leads to better recommendations.
I’m sure Netflix has looked at their data well and knows more about that, though.
I apply my own meaning to the 5-star rating, and find it to work really well:
1 = The movie was so bad I didn't/couldn't finish watching it.
2 = I watched it all, but didn't enjoy it and wouldn't recommend it to anyone.
3 = The movie was worth watching once, but I have no interest in watching it again.
4 = I enjoyed it, and would enjoy watching it again if it came up. I'd recommend it.
5 = a great movie -- I could enjoy watching it many times, and highly recommend it.
Looking at https://rectangleapp.com/, they basically use the same idea, yes, but is there a reasonable alternative?
Also, IMO, Apple’s pictograms look a lot better and are clearer. In Rectangle, the “left half” icon almost is a dark gray rectangle alongside a bright gray one, with the _dark_ indicating where tryout window will go. In Apple’s version, there is only one rectangle and the screen border is much easier to spot.
On the one hand earthquakes remove tension from the earth’s crust and release energy that can’t be used in future shocks.
On the other hand, if a shock doesn’t release all energy it may come to rest in a relatively weak spot that will soon give away again (https://en.wikipedia.org/wiki/Earthquake_swarm: “The Matsushiro swarm lasted from 1965 to 1967 and generated about 1 million earthquakes. This swarm had the peculiarity of being sited just under a seismological observatory installed in 1947 in a decommissioned military tunnel. It began in August 1965 with three earthquakes too weak to be felt, but three months later, a hundred earthquakes could be felt daily. On 17 April 1966, the observatory counted 6,780 earthquakes, with 585 of them having a magnitude great enough to be felt, which means that an earthquake could be felt, on average, every two and a half minutes.”)
Because of that, I think an earthquake will increase the probability of one occurring again soon, but decrease its strength.
I think that means this proposal adds a very specific form of finalisers to go.
How is that implemented efficiently? I can think of doing something akin to NSAutoReleasePool (https://developer.apple.com/documentation/foundation/nsautor...), with all allocations inside a `secret.Do` block going into a separate section of the heap (like a new generation), and, on exit of the block, the runtime doing a GC cycle, collecting and clearing every now inaccessible object in that section of the heap.
It can’t do that, though, because the article also says:
“Heap allocations are only erased if the program drops all references to them, and then the garbage collector notices that those references are gone. The program controls the first part, but the second part depends on when the runtime decides to act”
and I think what I am thinking of will guarantee that the garbage collector will eagerly erase any heap allocations that can be freed.
Also, the requirement “ the program drops all references to them” means this is not a 100% free lunch. You can’t simply wrap your code in a `secret.Do` and expect your code to be free of leaking secrets.
reply