[twitter-dev] Re: Upcoming changes to the way status IDs are sequenced

2010-04-01 Thread Aki
It actually makes sense to use tweet ID to sort tweets, because
timestamp is not a valid source of information for accurate sorting.
It is a very common case to have multiple tweets posted at the exact
same second, and it is not possible to reproduce the correct ordering
of tweets on the client side. This can be improved by having better
precision for timestamp (maybe milliseconds), but it is still possible
to get tweets posted at the exact same milliseconds (although it is
very rare).

If Twitter really needs to change the tweet ID scheme, I think better
solution for sorting is required to be provided through API.

On Mar 27, 7:41 am, Taylor Singletary taylorsinglet...@twitter.com
wrote:
 Hi Developers,

 It's no secret that Twitter is growing exponentially. The tweets keep coming
 with ever increasing velocity, thanks in large part to your great
 applications.

 Twitter has adapted to the increasing number of tweets in ways that have
 affected you in the past: We moved from 32 bit unsigned integers to 64-bit
 unsigned integers for status IDs some time ago. You all weathered that storm
 with ease. The tweetapoclypse was averted, and the tweets kept flowing.

 Now we're reaching the scalability limit of our current tweet ID generation
 scheme. Unlike the previous tweet ID migrations, the solution to the current
 issue is significantly different. However, in most cases the new approach we
 will take will not result in any noticeable differences to you the developer
 or your users.

 We are planning to replace our current sequential tweet ID generation
 routine with a simple, more scalable solution. IDs will still be 64-bit
 unsigned integers. However, this new solution is no longer guaranteed to
 generate sequential IDs.  Instead IDs will be derived based on time: the
 most significant bits being sourced from a timestamp and the least
 significant bits will be effectively random.

 Please don't depend on the exact format of the ID. As our infrastructure
 needs evolve, we might need to tweak the generation algorithm again.

 If you've been trying to divine meaning from status IDs aside from their
 role as a primary key, you won't be able to anymore. Likewise for usage of
 IDs in mathematical operations -- for instance, subtracting two status IDs
 to determine the number of tweets in between will no longer be possible.

 For the majority of applications we think this scheme switch will be a
 non-event. Before implementing these changes, we'd like to know if your
 applications currently depend on the sequential nature of IDs. Do you depend
 on the density of the tweet sequence being constant?  Are you trying to
 analyze the IDs as anything other than opaque, ordered identifiers? Aside
 for guaranteed sequential tweet ID ordering, what APIs can we provide you to
 accomplish your goals?

 Taylor Singletary
 Developer Advocate, Twitterhttp://twitter.com/episod


-- 
To unsubscribe, reply using remove me as the subject.


[twitter-dev] When does DM rate limit reset?

2010-04-01 Thread Aki Koto
Hi

I know there is 250 rate limits to post DM in a day.
1) when does the rate limit reset? Does it reset to zero at 24:00 in
PST every day?
2) If the user keeps on trying to send DM after exceeding the rate
limit, is there a possibility that the account will be suspended or
treated as spam? My client hits to the rate limit on twitter.com, but
they didn't know about the rate limit. So they tried to send DM again
and again.

Thanks
Aki


-- 
To unsubscribe, reply using remove me as the subject.


[twitter-dev] Re: Upcoming changes to the way status IDs are sequenced

2010-04-01 Thread Aki
I'm developing desktop Twitter client. I think accurate sorting is
needed, because the order of tweets may look different on every
application without accurate sorting. It's not that it would totally
kill my Twitter client, but I take accurate presentation of tweets
seriously, and I think it would be better to have consistent tweet
ordering across all applications.

If this scheme change is really needed (e.g. required to processing
new tweets simultaneously across multiple servers without
synchronising tweet ID), I would suggest adding time in milliseconds
to tweet information, which would have much better accuracy.

On Apr 2, 3:39 am, Mark McBride mmcbr...@twitter.com wrote:
 Just out of curiosity, what applications are you building that require
 sub-second sorting resolution for tweets?

   ---Mark

 http://twitter.com/mccv



 On Wed, Mar 31, 2010 at 11:01 PM, Aki yoru.fuku...@gmail.com wrote:
  It actually makes sense to use tweet ID to sort tweets, because
  timestamp is not a valid source of information for accurate sorting.
  It is a very common case to have multiple tweets posted at the exact
  same second, and it is not possible to reproduce the correct ordering
  of tweets on the client side. This can be improved by having better
  precision for timestamp (maybe milliseconds), but it is still possible
  to get tweets posted at the exact same milliseconds (although it is
  very rare).

  If Twitter really needs to change the tweet ID scheme, I think better
  solution for sorting is required to be provided through API.

  On Mar 27, 7:41 am, Taylor Singletary taylorsinglet...@twitter.com
  wrote:
   Hi Developers,

   It's no secret that Twitter is growing exponentially. The tweets keep
  coming
   with ever increasing velocity, thanks in large part to your great
   applications.

   Twitter has adapted to the increasing number of tweets in ways that have
   affected you in the past: We moved from 32 bit unsigned integers to
  64-bit
   unsigned integers for status IDs some time ago. You all weathered that
  storm
   with ease. The tweetapoclypse was averted, and the tweets kept flowing.

   Now we're reaching the scalability limit of our current tweet ID
  generation
   scheme. Unlike the previous tweet ID migrations, the solution to the
  current
   issue is significantly different. However, in most cases the new approach
  we
   will take will not result in any noticeable differences to you the
  developer
   or your users.

   We are planning to replace our current sequential tweet ID generation
   routine with a simple, more scalable solution. IDs will still be 64-bit
   unsigned integers. However, this new solution is no longer guaranteed to
   generate sequential IDs.  Instead IDs will be derived based on time: the
   most significant bits being sourced from a timestamp and the least
   significant bits will be effectively random.

   Please don't depend on the exact format of the ID. As our infrastructure
   needs evolve, we might need to tweak the generation algorithm again.

   If you've been trying to divine meaning from status IDs aside from their
   role as a primary key, you won't be able to anymore. Likewise for usage
  of
   IDs in mathematical operations -- for instance, subtracting two status
  IDs
   to determine the number of tweets in between will no longer be possible.

   For the majority of applications we think this scheme switch will be a
   non-event. Before implementing these changes, we'd like to know if your
   applications currently depend on the sequential nature of IDs. Do you
  depend
   on the density of the tweet sequence being constant?  Are you trying to
   analyze the IDs as anything other than opaque, ordered identifiers? Aside
   for guaranteed sequential tweet ID ordering, what APIs can we provide you
  to
   accomplish your goals?

   Taylor Singletary
   Developer Advocate, Twitterhttp://twitter.com/episod

  --
  To unsubscribe, reply using remove me as the subject.


[twitter-dev] Re: API Limit of 150 is Obsolete

2010-01-20 Thread Aki
I would also like to request the API limit to be raised as soon as
possible. I am not able to roll out an update for my desktop Twitter
client, simply because the API limit is too low for the features I
have implemented. The new version of my client utilizes Lists related
APIs, which consumes a lot of API calls. Moreover, multiple API calls
are currently required to get a chain of replies (conversation), which
consumes significant number of API calls.

The previously discussed features were implemented, because there was
an official announcement to change the API limit to 1500. I know it is
expected to happen in few weeks, but it would be good to know the
estimated date for this, so the developers can make appropriate
decisions on the application deployment timeline.

-- Aki

On Jan 21, 9:48 am, Eric Woodward e...@nambu.com wrote:
 I will come straight to the point: we need to an increase to the API
 limit to properly implement Twitter within a desktop client
 application given the addition of: 1) three retweets timelines; 2)
 checking the account's saved searches; and 3) up to 10-20 Twitter
 Lists timelines.

 Twitter Lists alone are causing real problems if a user follows more
 than 5 or so. We cant poll Twitter List subscriptions with one API
 call that combines them altogether, which we could then split apart
 client-side with some attached meta-data. That alone would have been a
 big help, and without it we are left polling each List as if it was a
 separate timeline, since that is what they are.

 Implementing proper Lists management is a non-starter within this
 limit, so is regular confirmation of a relationship between two users
 when asked for by the user (on Lists or search results). There is
 simply a lot of stuff I cannot do properly that is standard on
 twitter.com, all because I am subject to the API limit while
 twitter.com is not. Users simply do not understand this distinction in
 possibilities.

 I would like to formally ask on behalf of all client developers that
 the API limit increase to 250, from 150, for all applications whether
 they use OAuth or HTTP Basic Authentication. We are simply not able to
 implement Twitter properly within a limit of 150, but dont need a lot
 more, only another 100-200 API calls or so.

 If Twitter can even technically contemplate a 10x API limit increase
 to 1,500 for OAuth applications, surely an increase to 250 based on
 the addition of core features like official retweets and Lists is a
 reasonable request. A limit of 150 is simply obsolete, and has been
 for a long time.

 I do not want to wait for the UX repairs around OAuth for desktop
 applications, and I dont like being forced into OAuth sooner than we
 are ready just because we need the extra API hits just to do basic
 features properly. And besides, that was announced as two weeks away
 three weeks ago. I dont want to wait any longer. I want to properly
 implement the basics, like Lists polling, now.

 This is a considered email because I care about the quality of our
 Twitter implementation and I care about the Twitter ecosystem. I would
 appreciate a considered reply.

 --ejw

 Eric Woodward
 Email: e...@nambu.com


[twitter-dev] Re: Social Graph API: Legacy data format will be eliminated 1/11/2010

2009-12-24 Thread Aki
I agree with PJB. The previous announcements only said that the
pagination will be deprecated.

1. 
http://groups.google.com/group/twitter-api-announce/browse_thread/thread/41369cb133175d0f#
2. 
http://groups.google.com/group/twitter-api-announce/browse_thread/thread/52d4e68040d4ca45#

However, both of the announcements did not say that the API call
without page parameter to get
all IDs will be removed or replaced with cursor pagination.
The deprecation of this method is not being documented as PJB said.

On Dec 24, 5:00 pm, PJB pjbmancun...@gmail.com wrote:
 Why hasn't this been announced before?  Why does the API suggest
 something totally different?  At the very least, can you please hold
 off on deprecation of this until 2/11/2010?  This is a new API change.

 On Dec 23, 7:45 pm, Raffi Krikorian ra...@twitter.com wrote:



  yes - if you do not pass in cursors, then the API will behave as though you
  requested the first cursor.

   Willhelm:

   Your announcement is apparently expanding the changeover from page to
   cursor in new, unannounced ways??

   The API documentation page says: If the cursor parameter is not
   provided, all IDs are attempted to be returned, but large sets of IDs
   will likely fail with timeout errors.

   Yesterday you wrote: Starting soon, if you fail to pass a cursor, the
   data returned will be that of the first cursor (-1) and the
   next_cursor and previous_cursor elements will be included.

   I can understand the need to swap from page to cursor, but was pleased
   that a single call was still available to return (or attempt to
   return) all friend/follower ids.  Now you are saying that, in addition
   to the changeover from page to cursor, you are also getting rid of
   this?

   Can you please confirm/deny?

   On Dec 22, 4:13 pm, Wilhelm Bierbaum wilh...@twitter.com wrote:
We noticed that some clients are still calling social graph methods
without cursor parameters. We wanted to take time to make sure that
people were calling the updated methods which return data with cursors
instead of the old formats that do not.

As previously announced in September (http://bit.ly/46x1iL) and
November (http://bit.ly/3UQ0LU), the legacy data formats returned
as a result of calling social graph endpoints without a cursor
parameter are deprecated and will be removed.

These formats have been removed from the API wiki since September.

You should always pass a cursor parameter. Starting soon, if you fail
to pass a cursor, the data returned will be that of the first cursor
(-1) and the next_cursor and previous_cursor elements will be included.

If you aren't seeing next_cursor and previous_cursor in your results,
you are getting data back in the old format. You will need to adjust
your parser to handle the new format.

We're going to start assuming you want data in the new format
(users_list / users / user or id_list / ids / id) instead of the old
format (users / user or ids / id) regardless of your passing a cursor
parameter as of 1/11/2010.

* The old formats will no longer be returned after 1/11/2010.
* Start using the new formats now by passing the 'cursor' parameter.

To recap, the old endpoints at

   /statuses/friends.xml
   /statuses/followers.xml

returned

    users type=array
      user
      !-- ... omitted ... --
      /user
    /users

or JSON like [{/*user record*/ /*, .../]

whereas

        /statuses/friends.xml?cursor=n
        /statuses/followers.xml?cursor=n

return data that looks like

    users_list
      users type=array
          user
          !-- ... omitted ... --
          /user
      /users
      next_cursor7128872798413429387/next_cursor
      previous_cursor0/previous_cursor
    /users_list

or, the JSON equivalent:

    {users:[{/*user record*/} /*, ...*/], next_cursor:0,
previous_cursor:0}

and the old endpoints at

    /friends/ids.xml
    /followers/ids.xml

returned data that looks like

    ids
      id1/id
      id2/id
      id3/id
    /ids

whereas

    /friends/ids.xml?cursor=n
    /followers/ids.xml?cursor=n

return data that looks like

    id_list
      ids
        id1/id
        id2/id
        id3/id
      /ids
      next_cursor1288724293877798413/next_cursor
      previous_cursor-1300794057949944903/previous_cursor
    /id_list

or, the JSON equivalent:

    {ids:[1, 2, 3], next_cursor:0, previous_cursor:0}

If you have any questions or comments, please feel free to post them
to twitter-development-talk.

Thanks!

--
Wilhelm Bierbaum
Twitter Platform Team

  --
  Raffi Krikorian
  Twitter Platform Teamhttp://twitter.com/raffi


[twitter-dev] Re: Twitter Search Issues for Japanese

2009-10-27 Thread Aki

Thank you for responding so quickly!
It's nice to know that the issues have been reported to the
appropriate people.

-- Aki

On Oct 27, 12:35 am, John Kalucki jkalu...@gmail.com wrote:
 I've forwarded your message to the Japan product manager and to the
 engineer who first brought Japanese tokenizing to Search.

 -John Kaluckihttp://twitter.com/jkalucki
 Services, Twitter.com

 On Oct 26, 2:27 am, Aki yoru.fuku...@gmail.com wrote:



  Hi,

  I'm developing desktop Twitter application for Mac, targeting Japanese
  Twitterers.
  I've recently implemented a feature to interface the official Twitter
  Search API.
  It came to my attention that there are several severe issues with the
  current implementation of Twitter Search.

  Firstly, many tweets posted by Japanese Twitterers are not being
  indexed at all.
  Yes, I have read the notice regarding missing tweets from the search
  results. (http://help.twitter.com/forums/10713/entries/42646)
  From looking at several people I follow, about 50% of people are not
  being indexed at all.
  Actually, tweets were never indexed at all. Many of the other Japanese
  developers have also noticed these issues.
  I have tried using the locale option for the search API, but it
  didn't help much.

  Secondly, the operator to execute an exact phrase search (documented
  athttp://search.twitter.com/operators) does not work for Japanese
  query.
  I'm not sure if it's supposed to work with the API though.
  This issue is annoying, because search results returned from a query
  containing Japanese characters seems to return very fuzzy results.
  I get very irrelevant results, and even find it difficult to figure
  out why it even matched at all.

  I consider Twitter Search to be the major feature of Twitter, and I
  think correcting these issues will make Twitter much better web
  service for Japanese people.

  Thank you.

  -- Aki


[twitter-dev] Twitter Search Issues for Japanese

2009-10-26 Thread Aki

Hi,

I'm developing desktop Twitter application for Mac, targeting Japanese
Twitterers.
I've recently implemented a feature to interface the official Twitter
Search API.
It came to my attention that there are several severe issues with the
current implementation of Twitter Search.

Firstly, many tweets posted by Japanese Twitterers are not being
indexed at all.
Yes, I have read the notice regarding missing tweets from the search
results. (http://help.twitter.com/forums/10713/entries/42646)
From looking at several people I follow, about 50% of people are not
being indexed at all.
Actually, tweets were never indexed at all. Many of the other Japanese
developers have also noticed these issues.
I have tried using the locale option for the search API, but it
didn't help much.

Secondly, the operator to execute an exact phrase search (documented
at http://search.twitter.com/operators) does not work for Japanese
query.
I'm not sure if it's supposed to work with the API though.
This issue is annoying, because search results returned from a query
containing Japanese characters seems to return very fuzzy results.
I get very irrelevant results, and even find it difficult to figure
out why it even matched at all.

I consider Twitter Search to be the major feature of Twitter, and I
think correcting these issues will make Twitter much better web
service for Japanese people.

Thank you.

-- Aki