drnic-twitter 0.4.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/History +130 -0
  2. data/License +19 -0
  3. data/Manifest +68 -0
  4. data/README +84 -0
  5. data/Rakefile +42 -0
  6. data/bin/twitter +14 -0
  7. data/examples/blocks.rb +15 -0
  8. data/examples/direct_messages.rb +29 -0
  9. data/examples/favorites.rb +20 -0
  10. data/examples/friends_followers.rb +25 -0
  11. data/examples/friendships.rb +13 -0
  12. data/examples/identica_timeline.rb +7 -0
  13. data/examples/location.rb +8 -0
  14. data/examples/posting.rb +9 -0
  15. data/examples/replies.rb +27 -0
  16. data/examples/search.rb +18 -0
  17. data/examples/sent_messages.rb +27 -0
  18. data/examples/timeline.rb +34 -0
  19. data/examples/twitter.rb +27 -0
  20. data/examples/verify_credentials.rb +13 -0
  21. data/lib/twitter.rb +32 -0
  22. data/lib/twitter/base.rb +284 -0
  23. data/lib/twitter/cli.rb +419 -0
  24. data/lib/twitter/cli/config.rb +9 -0
  25. data/lib/twitter/cli/helpers.rb +109 -0
  26. data/lib/twitter/cli/migrations/20080722194500_create_accounts.rb +13 -0
  27. data/lib/twitter/cli/migrations/20080722194508_create_tweets.rb +16 -0
  28. data/lib/twitter/cli/migrations/20080722214605_add_account_id_to_tweets.rb +9 -0
  29. data/lib/twitter/cli/migrations/20080722214606_create_configurations.rb +13 -0
  30. data/lib/twitter/cli/models/account.rb +33 -0
  31. data/lib/twitter/cli/models/configuration.rb +13 -0
  32. data/lib/twitter/cli/models/tweet.rb +20 -0
  33. data/lib/twitter/direct_message.rb +22 -0
  34. data/lib/twitter/easy_class_maker.rb +43 -0
  35. data/lib/twitter/rate_limit_status.rb +19 -0
  36. data/lib/twitter/search.rb +101 -0
  37. data/lib/twitter/search_result.rb +83 -0
  38. data/lib/twitter/search_result_info.rb +82 -0
  39. data/lib/twitter/status.rb +22 -0
  40. data/lib/twitter/user.rb +38 -0
  41. data/lib/twitter/version.rb +3 -0
  42. data/spec/base_spec.rb +139 -0
  43. data/spec/cli/helper_spec.rb +49 -0
  44. data/spec/direct_message_spec.rb +35 -0
  45. data/spec/fixtures/follower_ids.xml +11 -0
  46. data/spec/fixtures/followers.xml +706 -0
  47. data/spec/fixtures/friend_ids.xml +12 -0
  48. data/spec/fixtures/friends.xml +609 -0
  49. data/spec/fixtures/friends_for.xml +584 -0
  50. data/spec/fixtures/friends_lite.xml +192 -0
  51. data/spec/fixtures/friends_timeline.xml +66 -0
  52. data/spec/fixtures/friendship_already_exists.xml +5 -0
  53. data/spec/fixtures/friendship_created.xml +12 -0
  54. data/spec/fixtures/public_timeline.xml +148 -0
  55. data/spec/fixtures/rate_limit_status.xml +7 -0
  56. data/spec/fixtures/search_result_info.yml +147 -0
  57. data/spec/fixtures/search_results.json +1 -0
  58. data/spec/fixtures/status.xml +25 -0
  59. data/spec/fixtures/user.xml +38 -0
  60. data/spec/fixtures/user_timeline.xml +465 -0
  61. data/spec/search_spec.rb +100 -0
  62. data/spec/spec.opts +1 -0
  63. data/spec/spec_helper.rb +23 -0
  64. data/spec/status_spec.rb +40 -0
  65. data/spec/user_spec.rb +42 -0
  66. data/twitter.gemspec +42 -0
  67. data/website/css/common.css +47 -0
  68. data/website/images/terminal_output.png +0 -0
  69. data/website/index.html +147 -0
  70. metadata +177 -0
@@ -0,0 +1,22 @@
1
+ module Twitter
2
+ class Status
3
+ include EasyClassMaker
4
+
5
+ attributes :created_at, :id, :text, :user, :source, :truncated, :in_reply_to_status_id, :in_reply_to_user_id, :favorited
6
+
7
+ # Creates a new status from a piece of xml
8
+ def self.new_from_xml(xml)
9
+ s = new
10
+ s.id = (xml).at('id').innerHTML
11
+ s.created_at = (xml).at('created_at').innerHTML
12
+ s.text = (xml).get_elements_by_tag_name('text').innerHTML
13
+ s.source = (xml).at('source').innerHTML
14
+ s.truncated = (xml).at('truncated').innerHTML == 'false' ? false : true
15
+ s.favorited = (xml).at('favorited').innerHTML == 'false' ? false : true
16
+ s.in_reply_to_status_id = (xml).at('in_reply_to_status_id').innerHTML
17
+ s.in_reply_to_user_id = (xml).at('in_reply_to_user_id').innerHTML
18
+ s.user = User.new_from_xml(xml.at('user')) if (xml).at('user')
19
+ s
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ module Twitter
2
+ class User
3
+ include EasyClassMaker
4
+
5
+ attributes :id, :name, :screen_name, :status, :location, :description, :url,
6
+ :profile_image_url, :profile_background_color, :profile_text_color, :profile_link_color,
7
+ :profile_sidebar_fill_color, :profile_sidebar_border_color, :friends_count, :followers_count,
8
+ :favourites_count, :statuses_count, :utc_offset , :protected, :created_at
9
+
10
+ # Creates a new user from a piece of xml
11
+ def self.new_from_xml(xml)
12
+ u = new
13
+ u.id = (xml).at('id').innerHTML
14
+ u.name = (xml).at('name').innerHTML
15
+ u.screen_name = (xml).at('screen_name').innerHTML
16
+ u.location = (xml).at('location').innerHTML
17
+ u.description = (xml).at('description').innerHTML
18
+ u.url = (xml).at('url').innerHTML
19
+ u.profile_image_url = (xml).at('profile_image_url').innerHTML
20
+
21
+ # optional, not always present
22
+ u.created_at = (xml).at('created_at').innerHTML if (xml).at('created_at')
23
+ u.profile_background_color = (xml).at('profile_background_color').innerHTML if (xml).at('profile_background_color')
24
+ u.profile_text_color = (xml).at('profile_text_color').innerHTML if (xml).at('profile_text_color')
25
+ u.profile_link_color = (xml).at('profile_link_color').innerHTML if (xml).at('profile_link_color')
26
+ u.profile_sidebar_fill_color = (xml).at('profile_sidebar_fill_color').innerHTML if (xml).at('profile_sidebar_fill_color')
27
+ u.profile_sidebar_border_color = (xml).at('profile_sidebar_border_color').innerHTML if (xml).at('profile_sidebar_border_color')
28
+ u.friends_count = (xml).at('friends_count').innerHTML if (xml).at('friends_count')
29
+ u.followers_count = (xml).at('followers_count').innerHTML if (xml).at('followers_count')
30
+ u.favourites_count = (xml).at('favourites_count').innerHTML if (xml).at('favourites_count')
31
+ u.statuses_count = (xml).at('statuses_count').innerHTML if (xml).at('statuses_count')
32
+ u.utc_offset = (xml).at('utc_offset').innerHTML if (xml).at('utc_offset')
33
+ u.protected = (xml).at('protected').innerHTML == 'false' ? false : true if (xml).at('protected')
34
+ u.status = Status.new_from_xml(xml.at('status')) if (xml).at('status')
35
+ u
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,3 @@
1
+ module Twitter #:nodoc:
2
+ Version = '0.4.4.1'
3
+ end
@@ -0,0 +1,139 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "Twitter::Base" do
4
+ before do
5
+ @base = Twitter::Base.new('foo', 'bar')
6
+ end
7
+
8
+ describe "being initialized" do
9
+ it "should require email and password" do
10
+ lambda { Twitter::Base.new }.should raise_error(ArgumentError)
11
+ end
12
+ end
13
+
14
+ describe "timelines" do
15
+ it "should bomb if given invalid timeline" do
16
+ lambda { @base.timeline(:fakeyoutey) }.should raise_error(Twitter::UnknownTimeline)
17
+ end
18
+
19
+ it "should default to friends timeline" do
20
+ @base.should_receive(:call).with("friends_timeline", {:auth=>true, :args=>{}, :since=>nil})
21
+ @base.should_receive(:statuses)
22
+ @base.timeline
23
+ end
24
+
25
+ it "should be able to retrieve friends timeline" do
26
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_timeline.xml').read
27
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
28
+ @base.timeline(:friends).size.should == 3
29
+ end
30
+
31
+ it "should be able to retrieve public timeline" do
32
+ data = open(File.dirname(__FILE__) + '/fixtures/public_timeline.xml').read
33
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
34
+ @base.timeline(:public).size.should == 6
35
+ end
36
+
37
+ it "should be able to retrieve user timeline" do
38
+ data = open(File.dirname(__FILE__) + '/fixtures/user_timeline.xml').read
39
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
40
+ @base.timeline(:user).size.should == 19
41
+ end
42
+ end
43
+
44
+ describe "friends and followers" do
45
+ it "should be able to get friends" do
46
+ data = open(File.dirname(__FILE__) + '/fixtures/friends.xml').read
47
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
48
+ @base.friends.size.should == 25
49
+ end
50
+
51
+ it "should be able to get friends without latest status" do
52
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_lite.xml').read
53
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
54
+ @base.friends(:lite => true).size.should == 15
55
+ end
56
+
57
+ it "should be able to get friend ids" do
58
+ data = open(File.dirname(__FILE__) + '/fixtures/friend_ids.xml').read
59
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
60
+ @base.friend_ids.size.should == 8
61
+ end
62
+
63
+ it "should be able to get friends for another user" do
64
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_for.xml').read
65
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
66
+ timeline = @base.friends_for(20)
67
+ timeline.size.should == 24
68
+ timeline.first.name.should == 'Jack Dorsey'
69
+ end
70
+
71
+ it "should be able to get followers" do
72
+ data = open(File.dirname(__FILE__) + '/fixtures/followers.xml').read
73
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
74
+ timeline = @base.followers
75
+ timeline.size.should == 29
76
+ timeline.first.name.should == 'Blaine Cook'
77
+ end
78
+
79
+ it "should be able to get follower ids" do
80
+ data = open(File.dirname(__FILE__) + '/fixtures/follower_ids.xml').read
81
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
82
+ @base.follower_ids.size.should == 8
83
+ end
84
+
85
+ it "should be able to create a friendship" do
86
+ data = open(File.dirname(__FILE__) + '/fixtures/friendship_created.xml').read
87
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
88
+ user = @base.create_friendship('jnunemaker')
89
+ end
90
+
91
+ it "should bomb if friendship already exists" do
92
+ data = open(File.dirname(__FILE__) + '/fixtures/friendship_already_exists.xml').read
93
+ response = Net::HTTPForbidden.new("1.1", '403', '')
94
+ response.stub!(:body).and_return(data)
95
+ @base.should_receive(:response).and_return(response)
96
+ lambda { @base.create_friendship('billymeltdown') }.should raise_error(Twitter::AlreadyFollowing)
97
+ end
98
+ end
99
+
100
+ it "should be able to get single status" do
101
+ data = open(File.dirname(__FILE__) + '/fixtures/status.xml').read
102
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
103
+ @base.status(803478581).created_at.should == 'Sun May 04 23:36:14 +0000 2008'
104
+ end
105
+
106
+ it "should be able to get single user" do
107
+ data = open(File.dirname(__FILE__) + '/fixtures/user.xml').read
108
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
109
+ @base.user('4243').name.should == 'John Nunemaker'
110
+ end
111
+
112
+ describe "rate limit status" do
113
+ before do
114
+ @data = open(File.dirname(__FILE__) + '/fixtures/rate_limit_status.xml').read
115
+ @base.stub!(:request).and_return(Hpricot::XML(@data))
116
+ end
117
+
118
+ it "should request the status" do
119
+ @base.should_receive(:request).and_return(Hpricot::XML(@data))
120
+ @base.rate_limit_status
121
+ end
122
+
123
+ it "should have an hourly limit" do
124
+ @base.rate_limit_status.hourly_limit.should == 20
125
+ end
126
+
127
+ it "should have a reset time in seconds" do
128
+ @base.rate_limit_status.reset_time_in_seconds.should == 1214757610
129
+ end
130
+
131
+ it "should have a reset time" do
132
+ @base.rate_limit_status.reset_time.should == Time.parse('2008-06-29T16:40:10+00:00')
133
+ end
134
+
135
+ it "should have remaining hits" do
136
+ @base.rate_limit_status.remaining_hits.should == 5
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,49 @@
1
+ require 'ostruct'
2
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
3
+ require File.dirname(__FILE__) + '/../../lib/twitter/cli/helpers'
4
+
5
+ class Configuration; end
6
+
7
+ def say(str)
8
+ puts str
9
+ end
10
+
11
+ class Tweet < OpenStruct
12
+ attr_accessor :id
13
+ end
14
+
15
+ describe Twitter::CLI::Helpers do
16
+ include Twitter::CLI::Helpers
17
+
18
+ describe "outputting tweets" do
19
+ before do
20
+ Configuration.stub!(:[]=).and_return(true)
21
+ @collection = [
22
+ Tweet.new(
23
+ :id => 1,
24
+ :text => 'This is my long message that I want to see formatted ooooh so pretty with a few words on each line so it is easy to scan.',
25
+ :created_at => Time.mktime(2008, 5, 1, 10, 15, 00).strftime('%Y-%m-%d %H:%M:%S'),
26
+ :user => OpenStruct.new(:screen_name => 'jnunemaker')
27
+ ),
28
+ Tweet.new(
29
+ :id => 2,
30
+ :text => 'This is my long message that I want to see formatted ooooh so pretty with a.',
31
+ :created_at => Time.mktime(2008, 4, 1, 10, 15, 00).strftime('%Y-%m-%d %H:%M:%S'),
32
+ :user => OpenStruct.new(:screen_name => 'danielmorrison')
33
+ )
34
+ ]
35
+ end
36
+
37
+ specify "should properly format" do
38
+ stdout_for {
39
+ output_tweets(@collection)
40
+ }.should match(/with a few words[\w\W]*with a\./)
41
+ end
42
+
43
+ specify 'should format in reverse' do
44
+ stdout_for {
45
+ output_tweets(@collection, :reverse => true)
46
+ }.should match(/with a\.[\w\W]*with a few words/)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "Twitter::DirectMessage" do
4
+ it "should create new direct message from xml doc" do
5
+ xml = <<EOF
6
+ <direct_message>
7
+ <id>331681</id>
8
+ <text>thanks for revving the twitter gem! had notice that it was broken but didn't have time to patch.</text>
9
+ <sender_id>18713</sender_id>
10
+ <recipient_id>4243</recipient_id>
11
+ <created_at>Sat Mar 10 22:10:37 +0000 2007</created_at>
12
+ <sender_screen_name>al3x</sender_screen_name>
13
+ <recipient_screen_name>jnunemaker</recipient_screen_name>
14
+ </direct_message>
15
+ EOF
16
+ d = Twitter::DirectMessage.new do |d|
17
+ d.id = '331681'
18
+ d.text = "thanks for revving the twitter gem! had notice that it was broken but didn't have time to patch."
19
+ d.sender_id = '18713'
20
+ d.recipient_id = '4243'
21
+ d.created_at = 'Sat Mar 10 22:10:37 +0000 2007'
22
+ d.sender_screen_name = 'al3x'
23
+ d.recipient_screen_name = 'jnunemaker'
24
+ end
25
+ d2 = Twitter::DirectMessage.new_from_xml(Hpricot.XML(xml))
26
+
27
+ d.id.should == d2.id
28
+ d.text.should == d2.text
29
+ d.sender_id.should == d2.sender_id
30
+ d.recipient_id.should == d2.recipient_id
31
+ d.created_at.should == d2.created_at
32
+ d.sender_screen_name.should == d2.sender_screen_name
33
+ d.recipient_screen_name.should == d2.recipient_screen_name
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ids>
3
+ <id>1192</id>
4
+ <id>750823</id>
5
+ <id>813198</id>
6
+ <id>10718</id>
7
+ <id>13046</id>
8
+ <id>79543</id>
9
+ <id>813775</id>
10
+ <id>681473</id>
11
+ </ids>
@@ -0,0 +1,706 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <users type="array">
3
+ <user>
4
+ <id>246</id>
5
+ <name>Blaine Cook</name>
6
+ <screen_name>blaine</screen_name>
7
+ <location>San Francisco</location>
8
+ <description>TwitterInterpreter.</description>
9
+
10
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14022002/171593560_00e00bc7c9_normal.jpg</profile_image_url>
11
+ <url>http://romeda.org/</url>
12
+ <protected>false</protected>
13
+ <followers_count>2765</followers_count>
14
+ <status>
15
+ <created_at>Sun May 04 23:36:14 +0000 2008</created_at>
16
+
17
+ <id>803478581</id>
18
+ <text>Listening to Umberto Eco trashing the lack of intellectual discrimination on the web.</text>
19
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
20
+ <truncated>false</truncated>
21
+ <in_reply_to_status_id></in_reply_to_status_id>
22
+
23
+ <in_reply_to_user_id></in_reply_to_user_id>
24
+ <favorited>false</favorited>
25
+ </status>
26
+ </user>
27
+ <user>
28
+ <id>613</id>
29
+ <name>Jerry Richardson</name>
30
+
31
+ <screen_name>jerry</screen_name>
32
+ <location>Warsaw, Indiana</location>
33
+ <description>Rails-jockey by day and a Dad by Night. </description>
34
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51893022/jerry135x135_normal.jpg</profile_image_url>
35
+ <url>http://tumblelog.jerryr.com</url>
36
+ <protected>false</protected>
37
+
38
+ <followers_count>903</followers_count>
39
+ <status>
40
+ <created_at>Sun May 04 02:47:26 +0000 2008</created_at>
41
+ <id>802958964</id>
42
+ <text>Our Black Sheep concert experience came after my bro saw @mchammer and Vanilla Ice in Indy but before we went to see EPMD in Merrillville.</text>
43
+ <source>web</source>
44
+
45
+ <truncated>false</truncated>
46
+ <in_reply_to_status_id></in_reply_to_status_id>
47
+ <in_reply_to_user_id></in_reply_to_user_id>
48
+ <favorited>false</favorited>
49
+ </status>
50
+ </user>
51
+ <user>
52
+ <id>874</id>
53
+
54
+ <name>Wayne Sutton</name>
55
+ <screen_name>waynesutton</screen_name>
56
+ <location>101 S Greensboro St, Carrboro,</location>
57
+ <description>New/Social Media Technology Evangelist, IT &amp; Mobile Consultant</description>
58
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51627720/twitter-icon4_normal.jpg</profile_image_url>
59
+
60
+ <url>http://wayne-sutton.com</url>
61
+ <protected>false</protected>
62
+ <followers_count>3279</followers_count>
63
+ <status>
64
+ <created_at>Mon May 05 00:10:05 +0000 2008</created_at>
65
+ <id>803493346</id>
66
+
67
+ <text>About to interview @gwenbell from http://www.techstars.org/</text>
68
+ <source>web</source>
69
+ <truncated>false</truncated>
70
+ <in_reply_to_status_id></in_reply_to_status_id>
71
+ <in_reply_to_user_id></in_reply_to_user_id>
72
+ <favorited>false</favorited>
73
+ </status>
74
+
75
+ </user>
76
+ <user>
77
+ <id>1186</id>
78
+ <name>Mr Messina</name>
79
+ <screen_name>factoryjoe</screen_name>
80
+ <location>Cafe 976</location>
81
+ <description>As if concentrating wasn't hard enough already.</description>
82
+
83
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52015547/bus_512_normal.jpg</profile_image_url>
84
+ <url>http://factoryjoe.com/</url>
85
+ <protected>false</protected>
86
+ <followers_count>5472</followers_count>
87
+ <status>
88
+ <created_at>Sun May 04 22:44:16 +0000 2008</created_at>
89
+
90
+ <id>803455663</id>
91
+ <text>Points for effort, but Rummble.com is a dataportability trainwreck that collided with a 30-car pileup that started by running over a kitten.</text>
92
+ <source>web</source>
93
+ <truncated>false</truncated>
94
+ <in_reply_to_status_id></in_reply_to_status_id>
95
+ <in_reply_to_user_id></in_reply_to_user_id>
96
+ <favorited>false</favorited>
97
+
98
+ </status>
99
+ </user>
100
+ <user>
101
+ <id>1418</id>
102
+ <name>Paul Terry Walhus</name>
103
+ <screen_name>springnet</screen_name>
104
+ <location>182 Clover Rd, TX 78612, USA</location>
105
+
106
+ <description>web host and developer, videographer, blogger, vlogger</description>
107
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14044102/paulterrywalhus_normal.jpg</profile_image_url>
108
+ <url>http://austincast.com/blog/</url>
109
+ <protected>false</protected>
110
+ <followers_count>4328</followers_count>
111
+ <status>
112
+
113
+ <created_at>Sun May 04 18:47:02 +0000 2008</created_at>
114
+ <id>803344225</id>
115
+ <text>optimal experience: John Erik Metcalf is a 24 year old entrepreneur living in Austin. What is he interes.. http://blog.think27.com/</text>
116
+ <source>&lt;a href="http://twitterfeed.com"&gt;twitterfeed&lt;/a&gt;</source>
117
+ <truncated>false</truncated>
118
+
119
+ <in_reply_to_status_id></in_reply_to_status_id>
120
+ <in_reply_to_user_id></in_reply_to_user_id>
121
+ <favorited>false</favorited>
122
+ </status>
123
+ </user>
124
+ <user>
125
+ <id>3148</id>
126
+ <name>Chris Prakoso</name>
127
+
128
+ <screen_name>mahadewa</screen_name>
129
+ <location>London, UK</location>
130
+ <description>Self-Proclaimed Geek, Mac Convert, C# by Day, Rails by Night, Cofee Drinker</description>
131
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52041617/avatar-greenteam_normal.jpg</profile_image_url>
132
+ <url>http://blog.prakoso.net</url>
133
+ <protected>false</protected>
134
+
135
+ <followers_count>535</followers_count>
136
+ <status>
137
+ <created_at>Fri May 02 14:21:21 +0000 2008</created_at>
138
+ <id>801897248</id>
139
+ <text>@rahadianagung :D</text>
140
+ <source>&lt;a href="http://www.twhirl.org/"&gt;twhirl&lt;/a&gt;</source>
141
+
142
+ <truncated>false</truncated>
143
+ <in_reply_to_status_id>801895884</in_reply_to_status_id>
144
+ <in_reply_to_user_id>9882862</in_reply_to_user_id>
145
+ <favorited>false</favorited>
146
+ </status>
147
+ </user>
148
+ <user>
149
+
150
+ <id>5567</id>
151
+ <name>Robert Brook</name>
152
+ <screen_name>robertbrook</screen_name>
153
+ <location>London</location>
154
+ <description></description>
155
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
156
+
157
+ <url>http://robertbrook.com/</url>
158
+ <protected>false</protected>
159
+ <followers_count>674</followers_count>
160
+ <status>
161
+ <created_at>Sun May 04 20:00:09 +0000 2008</created_at>
162
+ <id>803379099</id>
163
+
164
+ <text>yeesh - I'm a polluter! http://skitch.com/yikes/k3kj/twitterrific</text>
165
+ <source>web</source>
166
+ <truncated>false</truncated>
167
+ <in_reply_to_status_id></in_reply_to_status_id>
168
+ <in_reply_to_user_id></in_reply_to_user_id>
169
+ <favorited>false</favorited>
170
+ </status>
171
+
172
+ </user>
173
+ <user>
174
+ <id>5765</id>
175
+ <name>Lisa McMillan</name>
176
+ <screen_name>lisamac</screen_name>
177
+ <location>Barrie, ON, Canada</location>
178
+ <description>Want me to follow you back? @ me. I'm not checking my requests due to spam :(</description>
179
+
180
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/50809942/Archives_normal.jpg</profile_image_url>
181
+ <url>http://claimid.com/lisamac</url>
182
+ <protected>false</protected>
183
+ <followers_count>1968</followers_count>
184
+ <status>
185
+ <created_at>Sun May 04 18:39:51 +0000 2008</created_at>
186
+
187
+ <id>803340671</id>
188
+ <text>I'm going to play ball hockey with the girls next year. Mar 09 I'm gonna kick ass.</text>
189
+ <source>web</source>
190
+ <truncated>false</truncated>
191
+ <in_reply_to_status_id></in_reply_to_status_id>
192
+ <in_reply_to_user_id></in_reply_to_user_id>
193
+ <favorited>false</favorited>
194
+
195
+ </status>
196
+ </user>
197
+ <user>
198
+ <id>5977</id>
199
+ <name>raja</name>
200
+ <screen_name>raja</screen_name>
201
+ <location>Toronto, ON</location>
202
+
203
+ <description>computer scientist with a dislike for encapsulation in a single sentence.</description>
204
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14195882/IMG_1236_normal.jpg</profile_image_url>
205
+ <url>http://socalledchange.com</url>
206
+ <protected>false</protected>
207
+ <followers_count>93</followers_count>
208
+ <status>
209
+
210
+ <created_at>Sun May 04 01:22:00 +0000 2008</created_at>
211
+ <id>802921230</id>
212
+ <text>Out for dinner at #houseofchan in the village</text>
213
+ <source>web</source>
214
+ <truncated>false</truncated>
215
+ <in_reply_to_status_id></in_reply_to_status_id>
216
+
217
+ <in_reply_to_user_id></in_reply_to_user_id>
218
+ <favorited>false</favorited>
219
+ </status>
220
+ </user>
221
+ <user>
222
+ <id>8906</id>
223
+ <name>Daniel Morrison</name>
224
+
225
+ <screen_name>danielmorrison</screen_name>
226
+ <location>Holland, MI</location>
227
+ <description>I write code between hanging out at conferences.</description>
228
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51898464/verygreenteam_template_normal.png</profile_image_url>
229
+ <url>http://daniel.collectiveidea.com</url>
230
+ <protected>false</protected>
231
+
232
+ <followers_count>322</followers_count>
233
+ <status>
234
+ <created_at>Sun May 04 01:01:04 +0000 2008</created_at>
235
+ <id>802911879</id>
236
+ <text>won $6.40 on the Derby, betting on Eight Belles to show. Now she's been euthanized. Kinda depressing.</text>
237
+ <source>web</source>
238
+
239
+ <truncated>false</truncated>
240
+ <in_reply_to_status_id></in_reply_to_status_id>
241
+ <in_reply_to_user_id></in_reply_to_user_id>
242
+ <favorited>false</favorited>
243
+ </status>
244
+ </user>
245
+ <user>
246
+ <id>10560</id>
247
+
248
+ <name>David Bax</name>
249
+ <screen_name>davidbax</screen_name>
250
+ <location></location>
251
+ <description></description>
252
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14383112/db_logo80x80_normal.png</profile_image_url>
253
+ <url></url>
254
+ <protected>true</protected>
255
+
256
+ <followers_count>2</followers_count>
257
+ <status>
258
+ <created_at>Sun May 04 14:51:04 +0000 2008</created_at>
259
+ <id>803223094</id>
260
+ <text>Is hoping this week goes a hell of a lot better then last week.</text>
261
+ <source>web</source>
262
+
263
+ <truncated>false</truncated>
264
+ <in_reply_to_status_id></in_reply_to_status_id>
265
+ <in_reply_to_user_id></in_reply_to_user_id>
266
+ <favorited>false</favorited>
267
+ </status>
268
+ </user>
269
+ <user>
270
+ <id>10718</id>
271
+
272
+ <name>Geoffrey Grosenbach</name>
273
+ <screen_name>topfunky</screen_name>
274
+ <location>Seattle</location>
275
+ <description>Independent publisher, senior visionary</description>
276
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14408202/im_normal.gif</profile_image_url>
277
+ <url>http://topfunky.com</url>
278
+
279
+ <protected>false</protected>
280
+ <followers_count>1326</followers_count>
281
+ <status>
282
+ <created_at>Sat May 03 21:08:55 +0000 2008</created_at>
283
+ <id>802811701</id>
284
+ <text>The organic vegetable delivery service I subscribe to can also deliver doughnuts on request. This is dangerous. http://pioneerorganics.com</text>
285
+
286
+ <source>web</source>
287
+ <truncated>false</truncated>
288
+ <in_reply_to_status_id></in_reply_to_status_id>
289
+ <in_reply_to_user_id></in_reply_to_user_id>
290
+ <favorited>false</favorited>
291
+ </status>
292
+ </user>
293
+
294
+ <user>
295
+ <id>12543</id>
296
+ <name>Scott Raymond</name>
297
+ <screen_name>sco</screen_name>
298
+ <location>Kansas City</location>
299
+ <description>I am sco, plain sco, in the morning, standing five foot ten in one sock.</description>
300
+
301
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52622133/scott-face-128_normal.jpg</profile_image_url>
302
+ <url>http://scottraymond.net/</url>
303
+ <protected>false</protected>
304
+ <followers_count>481</followers_count>
305
+ <status>
306
+ <created_at>Mon May 05 00:07:24 +0000 2008</created_at>
307
+
308
+ <id>803492235</id>
309
+ <text>mmm... flaming cheese.</text>
310
+ <source>web</source>
311
+ <truncated>false</truncated>
312
+ <in_reply_to_status_id></in_reply_to_status_id>
313
+ <in_reply_to_user_id></in_reply_to_user_id>
314
+ <favorited>false</favorited>
315
+
316
+ </status>
317
+ </user>
318
+ <user>
319
+ <id>12551</id>
320
+ <name>Brian Corrigan</name>
321
+ <screen_name>bcorrigan78</screen_name>
322
+ <location>Ballston Spa, NY</location>
323
+
324
+ <description></description>
325
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52504423/41411337_d70e4d90eb_o_normal.jpg</profile_image_url>
326
+ <url>http://www.generalexception.com</url>
327
+ <protected>false</protected>
328
+ <followers_count>9</followers_count>
329
+ <status>
330
+ <created_at>Fri Apr 11 04:46:06 +0000 2008</created_at>
331
+
332
+ <id>786952307</id>
333
+ <text>going to bed</text>
334
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
335
+ <truncated>false</truncated>
336
+ <in_reply_to_status_id></in_reply_to_status_id>
337
+ <in_reply_to_user_id></in_reply_to_user_id>
338
+
339
+ <favorited>false</favorited>
340
+ </status>
341
+ </user>
342
+ <user>
343
+ <id>12587</id>
344
+ <name>Luke Dorny</name>
345
+ <screen_name>luxuryluke</screen_name>
346
+
347
+ <location>Long Beach, Calif</location>
348
+ <description>Look, sir. Droids!</description>
349
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53621570/RedMeatYourself-stubbo_normal.png</profile_image_url>
350
+ <url>http://lukedorny.com</url>
351
+ <protected>false</protected>
352
+ <followers_count>810</followers_count>
353
+
354
+ <status>
355
+ <created_at>Sun May 04 23:37:04 +0000 2008</created_at>
356
+ <id>803478963</id>
357
+ <text>@keasone &amp; @aetherworld thanks! Enjoying my GET OLD DAY!</text>
358
+ <source>web</source>
359
+ <truncated>false</truncated>
360
+
361
+ <in_reply_to_status_id>803424420</in_reply_to_status_id>
362
+ <in_reply_to_user_id>5630102</in_reply_to_user_id>
363
+ <favorited>false</favorited>
364
+ </status>
365
+ </user>
366
+ <user>
367
+ <id>12606</id>
368
+
369
+ <name>Bill</name>
370
+ <screen_name>billturner</screen_name>
371
+ <location>Pittsburgh, PA</location>
372
+ <description></description>
373
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14743882/_yearbook__bturner_normal.jpg</profile_image_url>
374
+ <url>http://brilliantcorners.org/</url>
375
+
376
+ <protected>false</protected>
377
+ <followers_count>128</followers_count>
378
+ <status>
379
+ <created_at>Mon Apr 14 20:56:50 +0000 2008</created_at>
380
+ <id>789127310</id>
381
+ <text>@artwells: sorry to hear! hope she pulls through fine!</text>
382
+
383
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
384
+ <truncated>false</truncated>
385
+ <in_reply_to_status_id>789119412</in_reply_to_status_id>
386
+ <in_reply_to_user_id>1552371</in_reply_to_user_id>
387
+ <favorited>false</favorited>
388
+
389
+ </status>
390
+ </user>
391
+ <user>
392
+ <id>12661</id>
393
+ <name>Adam Keys</name>
394
+ <screen_name>therealadam</screen_name>
395
+ <location>Dallas, TX</location>
396
+
397
+ <description>Telling a joke, trying to or making a joke of myself.</description>
398
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52539922/shadesorange_normal.jpg</profile_image_url>
399
+ <url>http://therealadam.com</url>
400
+ <protected>false</protected>
401
+ <followers_count>515</followers_count>
402
+ <status>
403
+
404
+ <created_at>Sun May 04 15:39:40 +0000 2008</created_at>
405
+ <id>803247750</id>
406
+ <text>Seriously writing JavaScript for the first time in a long time. Prototypes abound!</text>
407
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
408
+ <truncated>false</truncated>
409
+
410
+ <in_reply_to_status_id></in_reply_to_status_id>
411
+ <in_reply_to_user_id></in_reply_to_user_id>
412
+ <favorited>false</favorited>
413
+ </status>
414
+ </user>
415
+ <user>
416
+ <id>12707</id>
417
+ <name>Garrett Dimon</name>
418
+
419
+ <screen_name>garrettdimon</screen_name>
420
+ <location>Dallas, TX</location>
421
+ <description>Building a bug and issue tracker to make life more pleasant for developers.</description>
422
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53317937/SmallAvatar_normal.jpg</profile_image_url>
423
+ <url>http://www.garrettdimon.com</url>
424
+ <protected>false</protected>
425
+
426
+ <followers_count>723</followers_count>
427
+ <status>
428
+ <created_at>Fri May 02 15:30:41 +0000 2008</created_at>
429
+ <id>801949097</id>
430
+ <text>It looks like a banana peel to me. Bananas are yellow too. http://tinyurl.com/64gjx3</text>
431
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
432
+
433
+ <truncated>false</truncated>
434
+ <in_reply_to_status_id></in_reply_to_status_id>
435
+ <in_reply_to_user_id></in_reply_to_user_id>
436
+ <favorited>false</favorited>
437
+ </status>
438
+ </user>
439
+ <user>
440
+ <id>12741</id>
441
+
442
+ <name>Dan Rubin</name>
443
+ <screen_name>danrubin</screen_name>
444
+ <location>Ft Lauderdale Int'L Airport</location>
445
+ <description>designer, singer, human. note to clients: follow me at your own risk...</description>
446
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53213051/happy-webbies-headshot_normal.png</profile_image_url>
447
+ <url>http://superfluousbanter.org</url>
448
+
449
+ <protected>false</protected>
450
+ <followers_count>1490</followers_count>
451
+ <status>
452
+ <created_at>Mon May 05 00:05:49 +0000 2008</created_at>
453
+ <id>803491554</id>
454
+ <text>@stefsull I usually try to, but I couldn't coordinate these flights without a) packing for two trips (tough w/quartet stuff) and b) waiting.</text>
455
+
456
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
457
+ <truncated>false</truncated>
458
+ <in_reply_to_status_id>803471563</in_reply_to_status_id>
459
+ <in_reply_to_user_id>82433</in_reply_to_user_id>
460
+ <favorited>false</favorited>
461
+
462
+ </status>
463
+ </user>
464
+ <user>
465
+ <id>12796</id>
466
+ <name>William H Harle Jr.</name>
467
+ <screen_name>wharle</screen_name>
468
+ <location>South Bend, IN</location>
469
+
470
+ <description></description>
471
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14786702/smirking-bill_normal.jpg</profile_image_url>
472
+ <url>http://90percentgravity.com</url>
473
+ <protected>false</protected>
474
+ <followers_count>42</followers_count>
475
+ <status>
476
+ <created_at>Sat May 03 02:18:52 +0000 2008</created_at>
477
+
478
+ <id>802341537</id>
479
+ <text>Ironman was everything transformers wasnt. The most important thing being awesome.</text>
480
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
481
+ <truncated>false</truncated>
482
+ <in_reply_to_status_id></in_reply_to_status_id>
483
+
484
+ <in_reply_to_user_id></in_reply_to_user_id>
485
+ <favorited>false</favorited>
486
+ </status>
487
+ </user>
488
+ <user>
489
+ <id>12938</id>
490
+ <name>Steve Smith</name>
491
+
492
+ <screen_name>orderedlist</screen_name>
493
+ <location></location>
494
+ <description></description>
495
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52246800/avatar_normal.jpg</profile_image_url>
496
+ <url>http://orderedlist.com</url>
497
+ <protected>false</protected>
498
+ <followers_count>697</followers_count>
499
+
500
+ <status>
501
+ <created_at>Fri May 02 21:05:37 +0000 2008</created_at>
502
+ <id>802178798</id>
503
+ <text>Am in need of beer and Mario Kart style relaxation.</text>
504
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
505
+
506
+ <truncated>false</truncated>
507
+ <in_reply_to_status_id></in_reply_to_status_id>
508
+ <in_reply_to_user_id></in_reply_to_user_id>
509
+ <favorited>false</favorited>
510
+ </status>
511
+ </user>
512
+ <user>
513
+ <id>13229</id>
514
+
515
+ <name>Sandy</name>
516
+ <screen_name>s</screen_name>
517
+ <location>Portland, OR</location>
518
+ <description>I'm Sandy, your personal email assistant. I'll remember the details so you can focus on what's important. Twitter me directly with: d s hi</description>
519
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/32694302/sandy_circle_normal.png</profile_image_url>
520
+ <url>http://iwantsandy.com/</url>
521
+
522
+ <protected>false</protected>
523
+ <followers_count>5152</followers_count>
524
+ <status>
525
+ <created_at>Wed Dec 19 23:50:43 +0000 2007</created_at>
526
+ <id>515972382</id>
527
+ <text>I'm fully twitterized! (iwantsandy.com/help/twitter) d s reminder leave in 5 mins * d s lookup today * d s update #1 4-5pm * d s forget #1</text>
528
+
529
+ <source>web</source>
530
+ <truncated>false</truncated>
531
+ <in_reply_to_status_id></in_reply_to_status_id>
532
+ <in_reply_to_user_id></in_reply_to_user_id>
533
+ <favorited>false</favorited>
534
+ </status>
535
+ </user>
536
+
537
+ <user>
538
+ <id>13346</id>
539
+ <name>Seth</name>
540
+ <screen_name>mojodna</screen_name>
541
+ <location>Davis, CA</location>
542
+ <description></description>
543
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14880742/avatar_normal.jpg</profile_image_url>
544
+
545
+ <url></url>
546
+ <protected>true</protected>
547
+ <followers_count>73</followers_count>
548
+ <status>
549
+ <created_at>Sun May 04 22:55:17 +0000 2008</created_at>
550
+ <id>803460336</id>
551
+ <text>@rabble is telling me about his 13-month old (Camilo) who plays Wii Tennis.</text>
552
+
553
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
554
+ <truncated>false</truncated>
555
+ <in_reply_to_status_id>803411438</in_reply_to_status_id>
556
+ <in_reply_to_user_id>22</in_reply_to_user_id>
557
+ <favorited>false</favorited>
558
+
559
+ </status>
560
+ </user>
561
+ <user>
562
+ <id>13518</id>
563
+ <name>Jesse Newland</name>
564
+ <screen_name>jnewland</screen_name>
565
+ <location>Atlanta, GA</location>
566
+
567
+ <description>Ruby/Rails hacker, IT Director at LexBlog </description>
568
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14914212/PageImage-79509-344229_normal.jpg</profile_image_url>
569
+ <url>http://jnewland.com</url>
570
+ <protected>false</protected>
571
+ <followers_count>370</followers_count>
572
+ <status>
573
+
574
+ <created_at>Sat May 03 19:09:37 +0000 2008</created_at>
575
+ <id>802757807</id>
576
+ <text>so, does lighthouse really not have RSS/Atom feeds of ticket bins? Or am I just not looking hard enough?</text>
577
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
578
+ <truncated>false</truncated>
579
+
580
+ <in_reply_to_status_id></in_reply_to_status_id>
581
+ <in_reply_to_user_id></in_reply_to_user_id>
582
+ <favorited>false</favorited>
583
+ </status>
584
+ </user>
585
+ <user>
586
+ <id>13647</id>
587
+ <name>Matt Klawitter</name>
588
+
589
+ <screen_name>mattklawitter</screen_name>
590
+ <location></location>
591
+ <description></description>
592
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14944452/17883645_N00_normal.jpg</profile_image_url>
593
+ <url>http://www.mattklawitter.com</url>
594
+ <protected>true</protected>
595
+ <followers_count>15</followers_count>
596
+
597
+ <status>
598
+ <created_at>Sun May 04 21:02:57 +0000 2008</created_at>
599
+ <id>803409155</id>
600
+ <text>Took 65 home from Indy instead of 31. Was faster. No Kokomo madness.</text>
601
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
602
+
603
+ <truncated>false</truncated>
604
+ <in_reply_to_status_id></in_reply_to_status_id>
605
+ <in_reply_to_user_id></in_reply_to_user_id>
606
+ <favorited>false</favorited>
607
+ </status>
608
+ </user>
609
+ <user>
610
+ <id>15323</id>
611
+
612
+ <name>Carrie Smith</name>
613
+ <screen_name>Carrie</screen_name>
614
+ <location>Mishawaka, Indiana</location>
615
+ <description></description>
616
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
617
+ <url></url>
618
+ <protected>false</protected>
619
+
620
+ <followers_count>12</followers_count>
621
+ <status>
622
+ <created_at>Wed Aug 15 01:34:30 +0000 2007</created_at>
623
+ <id>206466992</id>
624
+ <text>mourning the lost of most of the music on my ipod :(</text>
625
+ <source>web</source>
626
+
627
+ <truncated>false</truncated>
628
+ <in_reply_to_status_id></in_reply_to_status_id>
629
+ <in_reply_to_user_id></in_reply_to_user_id>
630
+ <favorited>false</favorited>
631
+ </status>
632
+ </user>
633
+ <user>
634
+ <id>18713</id>
635
+
636
+ <name>Alex Payne</name>
637
+ <screen_name>al3x</screen_name>
638
+ <location>San Francisco, CA</location>
639
+ <description>Oh, hi. No, I just work here.</description>
640
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51961745/al3x_normal.jpg</profile_image_url>
641
+ <url>http://www.al3x.net</url>
642
+
643
+ <protected>false</protected>
644
+ <followers_count>2891</followers_count>
645
+ <status>
646
+ <created_at>Sun May 04 23:08:51 +0000 2008</created_at>
647
+ <id>803466127</id>
648
+ <text>Automating everything. Ev-er-y-thing. Even that.</text>
649
+
650
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
651
+ <truncated>false</truncated>
652
+ <in_reply_to_status_id></in_reply_to_status_id>
653
+ <in_reply_to_user_id></in_reply_to_user_id>
654
+ <favorited>false</favorited>
655
+ </status>
656
+
657
+ </user>
658
+ <user>
659
+ <id>19413</id>
660
+ <name>Hendy Irawan</name>
661
+ <screen_name>ceefour</screen_name>
662
+ <location>Kediri, Jawa Timur, Indonesia</location>
663
+ <description>Handsome web developer :-)</description>
664
+
665
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/15077872/Hendy_01-09-2006_10-57-04_normal.jpg</profile_image_url>
666
+ <url>http://www.hendyirawan.web.id/</url>
667
+ <protected>false</protected>
668
+ <followers_count>143</followers_count>
669
+ <status>
670
+ <created_at>Sat Apr 26 13:29:32 +0000 2008</created_at>
671
+
672
+ <id>797437821</id>
673
+ <text>@ariekeren is there git submodule? is there piston for git?</text>
674
+ <source>im</source>
675
+ <truncated>false</truncated>
676
+ <in_reply_to_status_id>797417169</in_reply_to_status_id>
677
+ <in_reply_to_user_id>7462822</in_reply_to_user_id>
678
+
679
+ <favorited>false</favorited>
680
+ </status>
681
+ </user>
682
+ <user>
683
+ <id>24013</id>
684
+ <name>Matt Herzberger</name>
685
+ <screen_name>mherzber</screen_name>
686
+
687
+ <location>College Station, TX</location>
688
+ <description>Social Media in Higher Ed Evangelist, Do'er, Organizer</description>
689
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/46971312/Matt_sm_normal.jpg</profile_image_url>
690
+ <url>http://mattherzberger.com</url>
691
+ <protected>false</protected>
692
+ <followers_count>502</followers_count>
693
+
694
+ <status>
695
+ <created_at>Fri May 02 20:48:55 +0000 2008</created_at>
696
+ <id>802168478</id>
697
+ <text>@bradjward i think its funny that everyone thinks u write all the post, i mean u do 90% of them, u need a &amp;lt;h1&amp;gt; with brad didnt wri ...</text>
698
+ <source>web</source>
699
+ <truncated>true</truncated>
700
+
701
+ <in_reply_to_status_id>802167787</in_reply_to_status_id>
702
+ <in_reply_to_user_id>6928362</in_reply_to_user_id>
703
+ <favorited>false</favorited>
704
+ </status>
705
+ </user>
706
+ </users>