Happn on Solid 😉

What do you think about an app that indicates you the distance that you are from other users?
You don’t know his lontgitude and latitude but only the distance that separate you from each other…
Last Location is stored in a private folder of each user pod, or when you connect you send it to the app Pod, but that data is not viewable by noone. Only each other can see the calculation of the distance to each other,
And when you move, the distance is updated
Didn’t it be a good way to meet?

Is there a good diagram out there illustrating how notifications relate back to normal RDF content in folders?

For instance in the tic tac toe game or likes and comments on a blog post?

Is the representation distributed or replicated, and do notification persist and inform a local representation or is the notification used to create a local copy and the notification discarded?

A lot of questions there …

@SharonStrats is a pro on GPS data on Solid

FYI:

As far as I know, the students that will be participating this year on the ‘Solid Challenge’ on the professor Jose Emilio Labra’s subject (Software Architecture) will be an application related with routes management.

You can find more info here

@Smag0 Would this be a game? This is very neat, one problem I can see is how would you know which direction to head in order to meet each other, unless you had some idea of the other person’s position? I can see this as a game, this keeps being updated and you try to see if you can both get closer to each other eventually finding each other. Right now you may need to store the data in your public folder, due to some limitations on the private index (You are welcome to try, I am not certain) what I did is create a file on the public folder (publicTypeIndex) but limit the access via acl. You can control the access of the files in your public folder.

These notifications are stored in a user inbox. So it’s just where you send the message. I believe it would be distributed. You should be able to look at the code. I will see if I can find the Github repo name for you.

It’s not necessary for this app, but I’m curious if it is theoretically possible to calculate the distance without knowing the other position. For instance if the first Person is at point A, the other at point B, and the distance is d. Is it possible to have a function which does this: f(encrypted(A), encrypted(B)) = d? So that the distance is calculated on the encrypted positions. I found Homomorphic encryption but I currently don’t have the time to read into it and see if it’s a solution to this…

EDIT: I believe it is actually possible to compute it without sending the unencrypted location to the other person. Here’s what you could do (I will only do it for one person, it’s the same for the other one):

  1. User 1 generates public and private key (pub,priv)
  2. Store A_x_enc = encrypt(A.x, pub), A_y_enc = encrypt(A.y, pub) in the pod and give User 2 access
  3. User 2 encrypts his position with the same public key: B_x_enc = encrypt(B.x, pub), B_y_enc = encrypt(B.y, pub)
  4. User 2 performs the calculation dist_squared_enc = (A_x_enc - B_x_enc)^2 + (A_y_enc - B_y_enc)^2 and gives User 1 access
  5. User 1 decrypts it to dist = sqrt(decrypt(dist_squared_enc, priv)) and can show the distance to the user

It won’t be 100% accurate because it acts like the earth is flat, but I think for short distances this should be fine. For (partial) homomorphic encryption somthing like she-wasm should work.

If your app is only for fun, this won’t be necessary though as you can just hide the position from the user.

Project Portal lauch prototype: https://www.figma.com/proto/K1m6qMGoIjZHaTGfabtFkS/Login?node-id=6%3A209&viewport=229%2C222%2C0.1298469454050064&scaling=min-zoom

Yes, it’s for the fun, and see if could become something else…