AFAIK, even if the developer removes a game from Steam, if you bought it (or rather, a license for it), it remains in your account.
E.g. I have Lord of the Rings: War in the North that is no longer available anywhere, yet I can still download install and play it on my devices through Steam (even on Linux, which it was not intended for)
That of course doesn't help if the game does not have an offline component, e.g. I also still have League of Legends in my Steam account, but that is unusable because the Riot servers don't allow updating/connecting from it.
TLDR: OpenFGA supports recursive nesting - you can find many examples (e.g. GDrive) of that in the sample stores repo [1] and the documentation.
For your case:
> "User C manages User B, who owns Object A."
In the model, that is represented by:
```
model
schema 1.1
type user
relations
define manager: [user]
type folder
relations
define owner: [user]
```
So:
- Object A is owned by User B.
- User B is managed by User C.
- User C is managed by User D.
These can all be expressed as tuples:
```
- user: user:D, relation: manager, object: user:C
- user: user:C, relation: manager, object: user:B
- user: user:B, relation: owner, object: folder:A
```
> "User D should be able to view Object A, because User D manages User C, who manages User B, who owns Object A."
The model would become
```
model
schema 1.1
type user
relations
define manager: [user]
define managed_by: manager or managed_by from manager
type folder
relations
define owner: [user]
define can_view: owner or managed_by from owner
```
Notice how on the folder, you cannot say `manager from manager from owner`, but you can model your way around it by adding the `managed_by` relation on the user.
You can play with this sample on the FGA Playground here [2] (give it any name to continue, note that this is publicly viewable/editable). Your use-case is similar to the expenses sample [3]
Another option the docs is warning you of is that in order to use a relation as the base of a `from`, it MUST be just a directly assigned type, for example the below is not allowed as owner has redirects (or manager from owner), so cannot be used as the base of a recursive from
```
type folder
relations
define owner: [user] or manager from owner
define can_view: owner or manager from owner
```
but as you saw above, you can work around it with modeling slightly differently to reach the desired solution
In case it is easier for you, feel free to ask on our Discussions page or CNCF channel [4] as they render markdown a bit better than here on hn.
As for other AuthZ frameworks that support recursion, most of the Zanzibar[5][6] inspired ones (like what OpenFGA is) do, in fact it's one of the strong suits of a Zanzibar inspired approach to AuthZ.
For audiobooks, instead of pirating I would recommend https://libro.fm - you can buy them DRM free and they donate part of the proceeds to your library of choice.
Firefox has been doing that for a long while too. It recommends going to the already open tab but you can ignore that and open a nee tab anyway if you wish.
> it uses a CRTC vblank deadline based approach to postpone posting KMS updates until as late as possible, and uses this method to achieve lower latency cursor movements, as well avoiding potential cursor stutter when the main thread is too busy to manage completing a frame in time.
Mouse movements no longer happen on main thread.
And the RT KMS thread delays posting the update until just before a deadline, to make sure the mouse is samples at the last possible moment! What a neat & straightforward & simple hack, sampling late. I'm sure this kind of stuff is what Good game devs have been doing for decades but still amazes me to read this.
Yep in gamedev it's called frame pacing. If you have a 16 ms frame budget and you know rendering will take about 4 ms, you can sleep for 10 ms, sample the latest possible inputs, and kick off rendering just in time to make the deadline.
If you estimate wrong, you start missing frames. If you don't do any frame pacing, the game always has a little bit of preventable input lag.
I only learned about this a couple years ago, but I think I felt it years ago - One of my games just seemed to feel better with a 10 millisecond sleep right after I submitted each OpenGL frame. In a world where you can't control hardware and OS lag, that 10 ms of free lag reduction is wondrous.
Non-Americans should not, and usually do not believe either. It's funny when Republicans/Democrats treat either as reputable.
They're politicking 101 made into 24/7 news media panic.
They're both charlatans and peddlers of lies and cheap tricks; they engage in propaganda and employ journalists who seem to believe that they're anything other than foot soldiers to stir up the masses against XYZ.
Everyone knows Fox News is trash, it's laughable when some continue to argue that CNN isn't.
Where XYZ can be anything, depending on which way the wind is blowing, sometimes it's each other, sometimes it's internal to the US, sometimes it's external
I mean, to follow that analogy, yeah people absolutely should abandon their families if the families are out there actively murdering innocents.
The person saying that they're only staying to murder with their families because they care about them is not a redeeming quality, and they should definitely be held accountable and not excused for their crimes.
For the record, I consider any armed person outside their home country should be considered as a terrorist and a militia and treated as such. There is no reason someone from country A should be carrying a weapon in country B and attacking people there. This is 100 times even more valid when country B has not authorized this.
I agree, but the world just isn't this simple. It's not about murdering with you family- it's about protecting your family. Kids I knew that went to Iraq were the protective types, not murderous. People can enlist in the military with the intention of protecting their country only to be ordered overseas caught up in some bullshit war. Historically, drafts were the main reason. And no man is an island, so whatever situation pulls one person in, is bound to ripple through other people's lives and pull others in as well.
> I consider any armed person outside their home country should be considered as a terrorist and a militia
I mean, there are situations like hostage crises where foreign countries send in soldiers that I think are completely justified. But, I agree, in general. Our foreign policy has been fucked since the CIA started after WWII. I'm just grateful I never had to fight a war- chances are I would've being born in the last couple hundred years
Or the US semiconductor industry
> Most of the money is going into industry and supporting industry investments. Of the $52.7 billion in subsidies, the bulk of that will end up going to private companies. (https://www.scientificamerican.com/article/nearly-53-billion...)
Of course there's more examples for almost any country.
I'm not debating your conclusion. I think it is spot on. I am calling out the tone though as if this was not the norm for all the mega corps/mega industries.
I can't believe I'm on the side of Facebook on this one.
The problem is "nations" don't represent the people in those nations, and those in power are just as capable as big tech in to relying on scare tactics and duplicitous messaging and misleading the populace in order to push forward their own agendas.
Fighting encryption has nothing to do with "saving the children", no more than all the misguided disastrous crusades against one thing or another over the past 50 years have been about saving the children.
I come from a place where in the 2000s the religious institutions through a hissy fit about certain music and subcultures and how they must be suppressed in order to "save the children". Fighting encryption may not be religious in nature but is born out of the same need for power and control.
> The problem is "nations" don't represent the people in those nations
The hell they don't! And who are bigtech companies to decide who the legitimate leader or a nation is? Whatever government is recognized by your government as legitimate gets to call the shots over those people. Democracy is not a human right, and even if it was it is democratic nations that are demanding this to the most part. You don't get to claim you are really fighting for the people when you have no legitimate reason to make that claim. Even if the people wanted privacy at the cost of more harm to their fellow man, the people need to use the law to enforce that, either you have the rule of law, the rule of man or the rule of criminals.
E.g. I have Lord of the Rings: War in the North that is no longer available anywhere, yet I can still download install and play it on my devices through Steam (even on Linux, which it was not intended for)
That of course doesn't help if the game does not have an offline component, e.g. I also still have League of Legends in my Steam account, but that is unusable because the Riot servers don't allow updating/connecting from it.