HN user

alephu5

412 karma
Posts0
Comments198
View on HN
No posts found.

I've been interested in this problem space for a couple of years, have tried a whole bunch of products but settled on using cedar policy engine[1] wrapped in some custom code and using the application database and static files to generate policies that can be concatenates to make decisions. A useful property is that they can be indexed based on the "subject verb object" triplet used to represent authorisation queries (e.g. Can "John" download "File 1"?)

Have tried a whole bunch of other FGA providers with their own storage and retrieval services, I think that fundamentally all the DSLs are just variants on prolog and can be quite easily transformed into one another. Another thing to consider is that authorisation is in the critical path of everything, so if you need to call out to an external service it's going to add latency and becomes a single point of failure. Not to mention that it creates an explosion of complexity by distributing the system more widely, so if you can leverage your existing database and file storage to manage policies it's probably easier to build and mange long-term.

Overall I think it's worthwhile using an FGA solution to separate authorisation from business logic, I expect this will become industry standard in the years to come.

[1] https://www.cedarpolicy.com/en

AWS Purity Test 3 years ago

I got a 96 and am pleased with that. I have serious concerns about Amazon as a company, they're too big and predatory.

I've been using AWS at various companies and have tried to embrace its paradigms but I hate them.

Grep is a performance sensitive program, it's not unusual to scan through thousands of files and millions of lines so small inefficiencies are noticeable.

If you tried this in python it would probably take hours to scan through something that ripgrep does in a few seconds

55 GiB/s FizzBuzz 5 years ago

Not lazy, sensible. The market has spoken and it wants bloated electron apps with rapid development, rather than performant C/assembly apps that hardly ever change.

No YAML 5 years ago

The most useful definition (for engineering) is that "code" changes/defines how the program executes. Your YAML shopping list changes your path through the shop, so it is code.

For non-trivial programs the configuration space is so large that it's impractical to test every single configuration during development, so instead the operators are expected to test before putting into production.

Expensify S-1 5 years ago

It makes sense that the CEO should communicate to employees the effects of politics on the company, but it's unreasonable to send this to your customers.

With an ORM you can leverage the IDE to get field names, types and descriptions by simply typing out the name of the model. In pure SQL you need to memorise the schema, or continuously switch contexts to refer back to it.

Another advantage is that you type-check your queries, whereas with pure SQL you can accidentally load a number into a string variable and crash the application.

Because of this I prefer very light ORMs that abstract almost nothing. Those that provide model definitions, automatic migrations and a one-one SQL mapping.

The point is 10x what? Compared to who?

We all know people who code faster than the rest of the team but they always cut corners. Part of the reason that everyone else is slower is because they're trying to work around the under-tested tightly coupled mess left behind by the 10x guy.

Then there's the 10x complexity discussed in the parent comment. Plenty of people will take years to solve a problem, if at all, that someone else would manage in a month. However this may be reversed for a different problem since it depends on experience and predisposition, so it makes no sense to talk about a '10x engineer' in this regard.

I share the conclusion with the OP that it's a vague and ultimately useless distinction.

Everyone I know uses YouTube as a de facto reference. They don't read blogs, Wikipedia, news articles or company documentation, rather they look for explainer videos or tutorials.

I mention that because I think it overflows into work interactions. I've had to deal with many complex problems, technically complex but also with business complexity needing collaboration to manage the objectives and risk. In these circumstances it really warrants a document or detailed email to tell others everything they need to know and consider, and yes it's going to require effort to absorb it. In recent years I've noticed that people almost never read these and ask for a video call. They want you to present it as if it were a YouTube video and you lose an hour trying to explain everything and losing much of it, because it's too much to absorb in real-time.

Maybe I'm a bad writer but I think few would dispute that it's the best way to transfer a block of information. As a rule of thumb calls only make sense for Q & A or discussions.