There are many questions like “why Mixero doesn’t show all the people I’m following on Twitter”.
In this post we’ll try to explain what we think about it currently.
One way to fetch the people you follow to the client is straightforward. The client asks Twitter to give it the list, it does this, in chunks. But there is a catch:
- Twitter allows us to grab maximum 100 of them per API call, ordered by the order in which they were followed.
- Twitter allows us to use 100 API calls each hour. These calls also needed to fetch updates, direct messages and replies, view users’ timelines and their info, etc.
Some of us have thousands or even tens of thousands in their following list. Simple math and we would see that if you follow, say, 5000 people, you’ll need 50 API calls at startup only to fetch all of them. That will cause delays on startup and twice as little API calls for other things (less frequent updates, etc) during the first hour.
If you happen to follow 50000, you’ll have to wait for 5 hours just to fetch them using all the API calls available (you won’t be able to read updates from Twitter using API all that time). And, remember, the most recent friends will be fetched only in the end.
There is another way to get the people followed. When they wake up and write something, they’ll appear in the friends’ timeline. And they’ll appear in the Mixero contacts automatically. So Mixero will show the tweeps that updated recently.
When you do something with a tweep in Contacts, like adding to a group or active list, you tell Mixero that this person matters, and needs to be saved for later. So, this is the moment when a person you follow become your contact in terms of Mixero. From this moment, this person will always be in Contacts and will be synchronized across all the instances of Mixero.
Initially, when we thought of the Contacts feature, we wanted it to be populated only by people that:
- are saved in groups (that means they are matter to you) or
- brought by the timeline update stream (which means that they were active recently).
We have never considered contact list and following list to be equivalent. Contacts are just another thing. Like contact list in your email reader or address book. Twitter has never been designed to be one’s address book. It just doesn’t fit for the task. You won’t find your full following list of a considerable size in any of the Twitter clients (they usually show you the people that came with timeline update only). It’s even not an easy task on Twitter website itself (you are not constrained by the API calls limit there though). Because that’s not the thing Twitter is about.
So, you say, what Mixero can do for me? To fill your contact list initially, just to give you something to play with and to add people to groups, we fetch limited count of people from your follow list, max. 500 by default (you remember, that would be the first 500 people you followed). We suppose this is a reasonable default.
From this point you may:
- Add some people by hand using drag’n’drop from timelines, “Add contact” buttons, follow button from inline profiles, etc. Don’t hesitate even if you know that the person has been already followed on Twitter, Mixero will handle this.
- Wait till somebody not in contacts become active. He will appear in Ungrouped very soon. Add him to a group, so he will stay in contacts forever, till you remove him manually.
- Increase the maximum of following loaded at startup in application settings. Remember that you’ll have to wait till all the tweeps are loaded. Expect slowdown in app responsiveness and updates frequency that time. The setting will be in effect after application restart. It would be wise to return the settings to lower value after you grouped the people fetched.
As always, we eager to hear your feedback.