I contacted Lightnin about it.
Lightnin wrote:
Actually, we've just added a Master's in Engineering student to our team who is planning on looking at this! Thing is, there may be regulations about sharing the data with people outside of our research team. Can you paste this into an email and send it to help@scratch? I'll pass it on to the new researcher, and let them know you are interested in similar things.
Offline
Hardmath123 wrote:
I contacted Lightnin about it.
Awesome!
Lightnin wrote:
Thing is, there may be regulations about sharing the data with people outside of our research team.
I thought the data was public through the API anyway? Or is he talking about different data...?
Offline
That's what I told him. Awaiting reply...
Offline
Nice! Maybe we'll get the results after all
Offline
Bump. Something else to explore.
Offline
Hardmath123 wrote:
Bump. Something else to explore.
Amazing! That's really a complicated paradox which took me some time to understand.
It makes it even more interesting to make this experiment on Scratch!
Offline
Hmm, I was working on a script to analyze just two levels of friends, and then I realized I could actually cache some results in a file. So if P2S is user id 123456, I could cache 123456 to P2S because he's obviously really popular. Also, I added a few more optimizations. So I've reduced the computation time a lot.
EDIT: @LS97 is it just me or is your sig throwing 404's all over the place?
Last edited by Hardmath123 (2012-09-21 12:27:34)
Offline
Here is some pseudo-code for it:
max-degree-of-separation = 6 the-queue = list("inc-dos", first-user); already-checked = list(); degree-of-separation = 0 while (!empty(the-queue)){ user = remove-from-front(the-queue); increment = false; if (user = "inc-dos"){ increment = true; user = remove-from-front(the-queue); } add(already-checked, user); friends = friends-of; for (i = 0; i != length(friends)){ if (!contains(the-queue, friends[i]) & !contains(the-queue, friends[i]) & has-projects(user)) add-to-end(the-queue, friends[i]); } if (increment){ degree-of-separation += 1; add-to-end(the-queue, "inc-dos"); if (degree-of-separation = max-degree-of-separation) break; } } result = append-lists(the-queue, already-checked);
Remember, it is only pseudo-code so it may require some more work to translate it into an actual language and implement some of those functions.
Offline
This code I just wrote seems to work okay
Hardmath123 wrote:
and then I realized I could actually cache some results in a file. So if P2S is user id 123456, I could cache 123456 to P2S because he's obviously really popular.
...you mean you weren't doing that already? Cache *all* the usernames!
Offline
Hardmath123 wrote:
@LS97 is it just me or is your sig throwing 404's all over the place?
Well, we took down Mod Share while we're setting up version 4, so my sig is actually returning a bunch of html pages saying how Mod Share is down
Offline
blob8108 wrote:
This code I just wrote seems to work okay
Hardmath123 wrote:
and then I realized I could actually cache some results in a file. So if P2S is user id 123456, I could cache 123456 to P2S because he's obviously really popular.
...you mean you weren't doing that already? Cache *all* the usernames!
Well, I was caching, but not too optimally.
I think as a warm-up-plus-sanity-check, I should test the paradox mentioned above. Let's call the "inner circle" of X the set of friends of X who friended X back. Then on average who has a larger inner circle: X or X's friends? Or X's inner circle?
Offline
I'd definitely get my computer to help with this, it sounds interesting
Offline