Live data from Hacker News

Jeeves – A Language for Automatically Enforcing Privacy Policies

projects.csail.mit.edu

21–30 of 36 posts

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#21

Happy to answer questions!

Can you give a high-level overview of the implementation? I read the README, and if I could guess it seems enforcement is determined through wrapped values, lambda functions that determine access based on numeric thresholds, and roles are assigned numbers in that range. Is that close?

Yes, pretty close. In Jeeves, sensitive values are essentially pairs of values guarded by a label: , where k is the label, vHigh is the high-confidentiality "view" (corresponding to, for instance, my sensitive GPS location), and vLow is the low-confidentiality "view" (corresponding to, for instance, some coarser-grained version of my location--such as what country I'm in). Rather than roles, we have these flexible policies can be arbitrary lambda functions that take a "viewer" argument. Each policy function is associated with a label and returns "true" if the label can be "high." The implementation evaluates each part of a multi-faceted value in order to return multi-faceted results. These results are "concretized" according to who is looking at them: given the viewer, we can use the policy functions to determine what the viewer should see. The implementation overloads Python operators and does dynamic source transformation (via the @jeeves macro) in order to support computations on these multi-faceted values.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#22

Every time I see something like "Removes Human Error", I think of Nassim Taleb's Antifragile . This drive to remove errors is likely flawed from the start since we, as humans, are error prone. It's interesting from a theoretical standpoint but there will be human error, regardless of the language. Errors are part of human existence.

This drive to remove errors is likely flawed from the start since we, as humans, are error prone.

What? The drive to remove errors is with machines, not humans. Machines can be built which detect and fix human errors. Why is this a flawed premise? One need only look at the history of programming language innovations to see all the successful examples of errors being eliminated.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#23
post #11

Please submit the original source. If a blog post reports on something they found on another site, submit the latter. http://ycombinator.com/newsguidelines.html

In defense of the OP, it technically IS the original source. Technology review is a product of MIT and they were merely reposting, word for word, their press release.

Very true, though I think the OP should have used some judgement. In this case, the submitted article is a short paragraph, followed by a link to the interesting content. It seems like a no-brainer to submit the interesting content rather than the submitted article.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#24
post #16

Earlier quoted context omitted.

No examples on the home page. Nor in the 'code' section. Or in the README on github. You'd think people would learn that most readers on the internet give up looking after 3 seconds.

There are some examples here: https://github.com/jeanqasaur/jeeves/wiki/A-Quick-Introducti... Thanks for the feedback and sorry they were hard to find!

Your project looks super interesting. And unlike bjz_, "examples" are not the first thing I wanna see in a new DSL website but a link to the paper :)

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#25
post #22

Every time I see something like "Removes Human Error", I think of Nassim Taleb's Antifragile . This drive to remove errors is likely flawed from the start since we, as humans, are error prone. It's interesting from a theoretical standpoint but there will be human error, regardless of the language. Errors are part of human existence.

This drive to remove errors is likely flawed from the start since we, as humans, are error prone. What? The drive to remove errors is with machines, not humans. Machines can be built which detect and fix human errors. Why is this a flawed premise? One need only look at the history of programming language innovations to see all the successful examples of errors being eliminated.

But that's the thing, the errors keep getting eliminated but we keep getting new errors. There is no utopia where all the errors are gone, especially not from a top down driven language design. Can we get better? Sure and we have been. That's awesome. But I'm fairly sure we cannot "remove errors" as in "make things error free".

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#26
post #22

Earlier quoted context omitted.

This drive to remove errors is likely flawed from the start since we, as humans, are error prone. What? The drive to remove errors is with machines, not humans. Machines can be built which detect and fix human errors. Why is this a flawed premise? One need only look at the history of programming language innovations to see all the successful examples of errors being eliminated.

But that's the thing, the errors keep getting eliminated but we keep getting new errors. There is no utopia where all the errors are gone, especially not from a top down driven language design. Can we get better? Sure and we have been. That's awesome. But I'm fairly sure we cannot "remove errors" as in "make things error free".

I think you're being overly pedantic. When the author uses the phrase "remove errors" I take it to mean "remove a class (or classes) of errors". How is this not a worthy goal?

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#27
post #26

Earlier quoted context omitted.

But that's the thing, the errors keep getting eliminated but we keep getting new errors. There is no utopia where all the errors are gone, especially not from a top down driven language design. Can we get better? Sure and we have been. That's awesome. But I'm fairly sure we cannot "remove errors" as in "make things error free".

I think you're being overly pedantic. When the author uses the phrase "remove errors" I take it to mean "remove a class (or classes) of errors". How is this not a worthy goal?

I don't believe it's pedantic to see a difference between the words "reduce" and "remove". We think we can design top down systems that are error free. We are wrong. Systems are never error free and thinking they could be is actually quite bad for us. By doing everything we can to remove errors completely, we actually just ensure that the errors that remain will be much worse in scope. Far better to build a redundant system that is prepared for the errors instead of building an efficient system expecting no errors.

It is certainly a worthy goal to reduce errors. To not do so would be silly. But expecting errors to go to zero is not a worthy goal because there are always errors.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#28
post #26

Earlier quoted context omitted.

I think you're being overly pedantic. When the author uses the phrase "remove errors" I take it to mean "remove a class (or classes) of errors". How is this not a worthy goal?

I don't believe it's pedantic to see a difference between the words "reduce" and "remove". We think we can design top down systems that are error free. We are wrong. Systems are never error free and thinking they could be is actually quite bad for us. By doing everything we can to remove errors completely, we actually just ensure that the errors that remain will be much worse in scope. Far better to build a redundant…

I don't believe it's pedantic to see a difference between the words "reduce" and "remove".

No, but it's pedantic to generalize "remove errors" to "remove all errors". Actually, scratch that. It's just plain wrong.

Far better to build a redundant system that is prepared for the errors instead of building an efficient system expecting no errors.

Redundant systems only deal with certain classes of errors. You're making the same mistake you accuse the author of making.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#29
@jeanyang - This is really amazing work, and I'm very interested in it.

One question for you: On slide 10 you show "state of the art" as a bunch of conditional logic guarding the returned values and "Jeeves" as just a simple properly lookup.

Do you know if Facebook's "state of the art" is as you are describing it in this slide, or do you think they have a proprietary framework similar to Jeeves that they use internally to abstract away all of these details (and potential liability)?

Seem that they would, but I thought you might have some first-hand knowledge you could share given the background research you must have done in order to get to the point.

Re: Jeeves – A Language for Automatically Enforcing Privacy Policies

#30
post #26

Earlier quoted context omitted.

But that's the thing, the errors keep getting eliminated but we keep getting new errors. There is no utopia where all the errors are gone, especially not from a top down driven language design. Can we get better? Sure and we have been. That's awesome. But I'm fairly sure we cannot "remove errors" as in "make things error free".

I think you're being overly pedantic. When the author uses the phrase "remove errors" I take it to mean "remove a class (or classes) of errors". How is this not a worthy goal?

I don't think "remove errors" means "remove all errors", it just means some unspecified number or category of errors will be removed. Given that, "reduce errors" is probably more clear.

Edit: oops - I meant to reply to the parent...

Post reply on HN