When you're logged in, in the page source, there is a list called OrderedFriendsListInitialData.
According to rumour, it's a list of people that visit your profile the most, others say that it's a list of profiles you view the most, and yet other say it's the friends you interact with the most.
Can anyone shed some light on this by providing a definitive answer, or at least an educated one?
If You check the code You will notice it has something to do with right sidebar. Just before it in there is this url https://s-static.ak.facebook.com/rsrc.php/yT/r/q-Drar4Ade6.ogg
As it is JSON string obviously it has to be related, file this url is pointing at is sound notification for chat.
As You may notice it is initial data not chat list probably later chat script use this data to fill up people on list and make some extra check etc..
There is word ordered as well, Myself I'm not really active on facebook so have no way of checking it but it is known that fb analyses all Your steps and make this list based on thousands of factors to provide You with list of users You are likely to chat.
You father may be there because fb knows You are family and consider it as high possibility of conversation.
Send email to them If You want details.
Well in the time passed since you first posted this they've changed the name of the list to InitialChatFriendsList which I suppose is a little more descriptive of what it is, but as far as how they determine what to put on there I think my friends and I have come up with a very plausible explanation.
When determining who you are most likely to communicate with on their chat system, facebook will obviously use a whole number of factors weighted differently to determine who you most want to talk to and who you most need to talk to.
the most important is who you actually talk to... who on fb chat that you communicate with most frequently will obviously show up on your chat list.
who you have public interactions w/ (i.e tagging in at some location, picture tagging, actual wall comments etc.)
Now those two are two very large factors when determining who they put on your list, beyond that it is a combination of who looks at your page and whose page you look at. Based on my list and the list of my friends, we determined that if you are inclined to look at somebody else's page/posts a lot and they are likely to do the same for you, they will move up in rank even if you don't have an actual interactions on facebook. A couple of people who I would admit to "stalking" the most on fb are not even on my list (at least not on the top 50 which is where i stopped checking) while other people who I do occasionally look at and I have reason to believe they would be looking at my profile as well are fairly high on my list (around 10-15th place). And of course there are the completely random individuals who show up on the list who probably are stalkers.
Anyways, my point is there are so many factors that determine who is going to be on this list, you really can't just attribute it all to people who stalk you and people you stalk. While in for some people that would be the case, for most of the people on the list there is a whole list of reasons they're on there.
Of course this is all based on a very small pool of data, so who knows...
I think it may be the list of people who are on the top part of your chat list - the people you're statistically most likely to talk to. But! I may be wrong.
It definitely is the people who facebook considers are the most likely you are going to chat with. There are two lists of people in chat, one of the above, and the other friends who are online.
I believe the first 3 are accurate. When I checked for myself, my boyfriend was one, and my two best friends were 2 & 3. Everything after that seems to be a bit random, because #4 was a person I haven't interacted with for years.
Related
When selecting topics for facebook ads, many are duplicates. If my experience with databases has taught me anything, it's that humans enter data in all sorts of ways. So I guess facebook's algorithms have found 'topics' based on how humans have entered them. So I guess duplicates could result because of a trailing space or something like that.
From the UI, I cannot tell the difference between topics which appear identical, but which may have very different followings (e.g. one may have 10m associated users, another might just have 100 if it's an uncommon typo with a trailing space).
How can I view more information on facebook 'topics'? Is there an API call for this?
Example
Here is an example of a duplicate topic
Here's where the topics can be found (requires login)
NB: as a corollary to the above, when there are duplicates (or triplets) is it beneficial to select all of them, or is selecting just one enough to maximise the effect?
You can find the solution by creating an ad from the Business Manager. Short answer is that the duplicates belong to different categories.
In your case, if you look for "Sonic drive-in", Facebook will give you the following choices (see pic):
Sonic drive-in as interest (e.g. to target those who like a related page)
Stackoverflow as an employer (to target those working there)
So, it depends on what you need for your ads.
I am pretty much sure that if you look carefully at any friend's timeline profile you can easily predict what going on in his/her life, Even you can write his/her entire life, you can also find out the hidden fact which he/she never told or updated directly but indirectly he/she shared n liked related thing which will help you to analyze his/her activity. Is it anyway possible to build an automated system which can read n analyze friends entire facebook profile, his/her shared stuff, likes, comments etc. and create a report which will expose his/her entire life facts including hidden one, using some AI or Machine learning concepts?
There's no system that will automatically be able to give content and understanding like you're looking for automatically. The human mind is able to infer a lot that computers simply can't understand. Also, you (generally) know some things about the people outside of Facebook (since you are friends with them) that fills in a lot of detail that the analysis system won't have.
The best thing you can do is to clearly define your problem and question that you're asking. There was a 'gaydar' project at MIT that was able to look at networks of students and generally correlate which ones are gay. For large groups you'll find it works overall, but for an individual person you're not going to be able to have great certainty.
Yet, to just ask the computer to 'find hidden information' won't work. You need to have a pretty solid model to work with. Overall, you're probably going to need a lot of data with confirmed facts to get started on testing that model as well (thousands of points needed). Also, with any social network you'll find that there is a lot of inaccurate/fake data on any given social network. People mis-list things all the time for various reasons (humor, etc) and this is going to throw off your models.
More specifically, what factors determine the priorities they assign in response to a given query? I'm looking for answers that address numerous scenarios including queries that...
Specify the "type" of result (objects such as users, posts, pages, etc. or connections like friendships, likes, tags, etc.),
Have authentication tokens as well as ones that don't.
Have conditionals such as "since" and "until."
Don't even specify a type, such as this search for the word query.
I am actually working on an app that uses /search to search places and I use a bit of all scenarios. I couldn't write down a specific order they appear in and to be honest I highly doubt it's something as easy.
I'm 99% sure it works like the Search in Facebook does, using the user data to bring up the most relevant results. I live in Ireland for 2 years now, but while testing the app I constantly receive search results from Romania and actually close to my Hometown, which are relevant to me.
Regarding your observations, Facebook's algorithms might take into account the source of the request as well - which would be good, means it only improves as your app gets more users.
I'm new to iOS Development and am trying to make an application that essentially sorts through a list of 300 names or so. I've got the Drill-Down part of the application down, aside from the detailView, but am now faced with a challenge.
What I would like to do is have users select from 3 fields with a UIPickerView to come up with shorter lists for every time a user is looking for a person. I'd like to use a .plist, but I also have an XML feed of the information. Before I waste all of my time structuring these data sources, does anybody have a good overview as to how I should approach this?
Also, I've asked some this question before, and they tell me to read up on introductory iOS development topics. I understand the mechanics of development, I just can't ever figure out how to approach a task properly. (I'm working on it!)
Thanks in advance. I'd share an image to help clarify, but my rep isn't high enough.
Snip: It looks like I misread your intention which makes my earlier comments irrelevant, you want to have the user select one of 3 options to shrink the list, if I'm not mistaken.
Some more questions for you, so I take it that this XML feed is going to be potentially changing between times that the user loads up the app? Will it only ever grow or are those 300 or so names that are loaded once set for good? The reason I ask so that you can maybe see my train of thought is whether or not using Core Data might be useful. You could easily store your large list locally, save time having to reload this large list frequently, and also you can use the built fetchedObjectController to search your collection of names. I'll keep thinking about it and once you get a chance to answer these questions we can continue.
Ill check back for an edit or comment, and see if I can give you an approach. Also, maybe edit your question with any of your own approach ideas and we could also start from there and refine them if needed.
Edit 2: From the information in the comments this is one of the ways that I could see this being done that make sense to me:
Since you seem to be able to control the information you receive from the feed I would set it up to send you only the contacts that need to be added/removed. You could handle this a few ways depending on your deployment intentions but I would go with the following:
Find a way to signal a first time run of the application, and as a result all contacts would be new, and you could populate your list fully with a slightly longer first time setup. Then any further changes could be quickly handled by smaller edits made to the local list.
You would need to set up Core Data for your application, which should be fairly straightforward in your case, and after this you can use the built in NSFetchRequest to do your searches that will then quickly return a list of narrowed down contacts. As for the physical picker that is just a matter of building the UI which will require some design from your end as you are the only one that knows what you are going for in that regard. Depending on the complexity of your app and what functionality you will want to include you could get away with 1-2 views that simply do the displaying of the contacts in a table and then the picker just reloads when appropriate.
I'm not familiar with the implementation of XML Feeds and receiving data from them, but I have done XML Response parsing into Core Data from a SOAP service before and they shouldn't be terribly different.
Regarding resource to get you started should you need them, I would recommend the following:
eBooks:
http://www.techotopia.com/index.php/Objective-C_2.0_Essentials
http://www.techotopia.com/index.php/IPhone_iOS_4_Development_Essentials_Xcode_4_Edition
Tutorials:
http://www.raywenderlich.com/
The eBooks I have linked are both absolutely fantastic and one of the few xCode 4.0 books that I was able to find that seemed to be of an actual usable quality. They both contain easy to follow and clear tutorials on simple and more advanced aspects of programming for iOS.
Ray's site is an immensely helpful resource as it contains both a very active forum base for iOS programming in addition to a constantly growing tutorial collection as there are 4-5 people that constantly are creating new tutorials that the community votes on and suggests every week. It contains some more advanced topics than the above books and I would recommend looking at it after doing a few walk through/tutorials from the books.
I'll stick around if you have any further questions, otherwise you can send me a notification via these comments, or just post another question and someone is bound to help you out!
-Karoly
We're developing an educational multiplayer game for kids and want to allow players to chat with each other using a whitelist system. When using whitelist chat, players will be able to type only words which appear in the whitelist.
We're aware of the limitations of whitelists in general, but we think a whitelist chat system is something that would allow our players to express themselves better in the game, while allowing a higher level of security than moderated or blacklist chat.
While the system is easy enough to implement, we haven't been able to find a sample whitelist of "safe" words online. Does anyone know of where we can find such a list, preferably with a license that allows us to use it in a commercial project?
Thanks.
I do not believe that a simple whitelist of words will cut it. There are quite a few euphemisms for a lot of stuff out there, that a whitelist would never block (e.g. "he is growing like a weed" is fine, "he is growing weed" is NOT). And let's not mention the basic "would you like to meet?" which would be fine if the meeting were to happen in-game, but very dangerous if it were to happen out of it. Then there is also the issue of blocking rare, foreign or mistyped words, that might make your chat system frustrating enough that it would not be used.
In my opinion, there is absolutely no way you could ever match the security offered by an active and competent human moderator. Of course, depending on the volume of chat traffic and any real-time requirements there are quite a few practical issues with using humans for this. Considering that your application is targeted at children, however, human moderation might be quite acceptable, despite its much higer cost.
A second choise, but one very far from the abilities of human moderation, is to use some statistical filter such as Bogofilter, which will happily sort arbitrary text if you train it well. A blacklist would also help to immediately cut down messages with words that little kids should not (but usually do) know. You would also need a bunch of filters that would cut down messages with stuff like telephone numbers, email and street addresses and web links.
Perhaps the method with the best effectiveness/cost ratio would be to use human moderators assisted by multiple statistical filters to better make use of their time. Keep in mind, however, that if there are malicious users (i.e. anything else than same-age kids in a classroom) there is no way to make sure that nothing questionable or dangerous ever goes through.
You can try the standard unix dictionary. /usr/share/dict/words. But you'll have to modify it to remove the naughty words.
http://en.wikipedia.org/wiki/Words_%28Unix%29
http://www.openwall.com/wordlists/
While this doesn't exactly answer your question, Runescape uses a white list of phrases, rather than words.
The implementation in Runescape is awkward, because there are so many phrases to choose from. You have to go through 3 or 4 menus sometimes to get to the phrase you want.
If you can come up with a better organization of phrases, then this might work for you.