Re: [twitter-dev] Perl developers, watch out for status IDs

2010-11-10 Thread Marc Mims

* Cameron Kaiser  [101109 20:41]:

> If you are on a Perl that does not have 64-bit int and you are not using
> the stringified *_str fields, you may have overflowed the Perl precision
> limit this morning, which bit TTYtter users hard. Just a friendly warning
> to check your code, or use BigInt if you can rely on that support.

Cameron, I'm not experiencing any problems in Net::Twitter applications.
As long as "id".  All of JSON::Any backends (JSON::XS, typically) result
in a value that maintains its full precision as long as it's used in a
string context.  Am I missing something that's going to bite me (and
therefore Net::Twitter users in general)?


If you're treating it purely as a string, no (but I don't know how JSON::*
handles things that appear to be integer values, and "id" is not stringified
itself in the raw JSON).


perl -MJSON::XS=decode_json -E \
'$r=decode_json q({"id":9876543210123456789}); say $r->{id}'
# 9876543210123456789

Using Devel::Peek, the decoded 19 digit number is represented as a 
string, internally, by perl:


SV = PV(0x9e98280) at 0x9e3d678
  REFCNT = 1
  FLAGS = (POK,pPOK)
  PV = 0x9c9c0a8 "9876543210123456789"\0
  CUR = 19
  LEN = 20

So, I think as long as perl apps only use the new, longer IDs in string 
context, they should be ok.  I've tested some typical scenarios using 
each of the JSON::Any backends, storing and retrieving to a MySQL BIGINT 
field, etc.


It may very well be safer to use the id_str values---certainly more 
explicit.  But I haven't found common usage that will fail with the new, 
longer IDs.


-Marc

--
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


Re: [twitter-dev] Perl developers, watch out for status IDs

2010-11-09 Thread Cameron Kaiser
> > If you are on a Perl that does not have 64-bit int and you are not using
> > the stringified *_str fields, you may have overflowed the Perl precision
> > limit this morning, which bit TTYtter users hard. Just a friendly warning
> > to check your code, or use BigInt if you can rely on that support.
> 
> Cameron, I'm not experiencing any problems in Net::Twitter applications.  
> As long as "id".  All of JSON::Any backends (JSON::XS, typically) result 
> in a value that maintains its full precision as long as it's used in a 
> string context.  Am I missing something that's going to bite me (and 
> therefore Net::Twitter users in general)?

If you're treating it purely as a string, no (but I don't know how JSON::*
handles things that appear to be integer values, and "id" is not stringified
itself in the raw JSON).

-- 
 personal: http://www.cameronkaiser.com/ --
  Cameron Kaiser * Floodgap Systems * www.floodgap.com * ckai...@floodgap.com
-- Actually, we can overcome gravity (just not the paperwork involved). ---

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


Re: [twitter-dev] Perl developers, watch out for status IDs

2010-11-09 Thread Marc Mims

* Cameron Kaiser  [101106 15:10]:

If you are on a Perl that does not have 64-bit int and you are not using
the stringified *_str fields, you may have overflowed the Perl precision
limit this morning, which bit TTYtter users hard. Just a friendly warning
to check your code, or use BigInt if you can rely on that support.


Cameron, I'm not experiencing any problems in Net::Twitter applications.  
As long as "id".  All of JSON::Any backends (JSON::XS, typically) result 
in a value that maintains its full precision as long as it's used in a 
string context.  Am I missing something that's going to bite me (and 
therefore Net::Twitter users in general)?


-Marc

--
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk


[twitter-dev] Perl developers, watch out for status IDs

2010-11-06 Thread Cameron Kaiser
If you are on a Perl that does not have 64-bit int and you are not using
the stringified *_str fields, you may have overflowed the Perl precision
limit this morning, which bit TTYtter users hard. Just a friendly warning
to check your code, or use BigInt if you can rely on that support.

-- 
 personal: http://www.cameronkaiser.com/ --
  Cameron Kaiser * Floodgap Systems * www.floodgap.com * ckai...@floodgap.com
-- Tell the truth, and run. -- Yugoslav proverb ---

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk