twitterscour 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +12 -0
- data/README +44 -0
- data/lib/tweet.rb +21 -0
- data/lib/tweet_location.rb +14 -0
- data/lib/twitterscour.rb +159 -0
- data/test/fixtures/brent_page_1.html +1197 -0
- data/test/fixtures/search.json +1 -0
- data/test/tc_tweets.rb +91 -0
- data/twitterscour.rb +1 -0
- metadata +97 -0
data/History.txt
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
=== 0.2.0 / 2011-07-28
|
2
|
+
* Search term tweets broke a few days ago, fixed this by using the Twitter API. This results in faster searches, and the location is now included for search term searches
|
3
|
+
|
4
|
+
=== 0.1.2 / 2011-02-06
|
5
|
+
* Fixed bug with the term search, at some point in the past month this broke
|
6
|
+
|
7
|
+
=== 0.1.1 / 2010-11-08
|
8
|
+
* Added example files
|
9
|
+
* Documentation additions
|
10
|
+
|
11
|
+
=== 0.1.0 / 2010-11-07
|
12
|
+
* Initial release
|
data/README
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
= twitterscour gem
|
2
|
+
|
3
|
+
This gem is on Gemcutter, simply type "gem install twitterscour" to install it.
|
4
|
+
|
5
|
+
Code is available on github at http://github.com/brentsowers1/twitterscour
|
6
|
+
|
7
|
+
Class for retrieving lists of tweets. For user tweet searches, this gem uses
|
8
|
+
the actual Twitter web pages rather than the API. The API that other twitter
|
9
|
+
gems use returns only what Twitter considers the "most popular" tweets in many
|
10
|
+
cases, this returns all tweets that you can see if you go to the web page
|
11
|
+
directly. TwitterScour is the main class to use. There is no need to
|
12
|
+
instantiate it, two class methods are provided to search for tweets. These will
|
13
|
+
return an array of Tweet objects. Location info can be retrieved on tweets
|
14
|
+
as well.
|
15
|
+
|
16
|
+
WARNING - the user tweet search capability should probably not be relied upon
|
17
|
+
for a production system. Because it uses the structure of the Twitter web pages
|
18
|
+
as they are now, it could break if Twitter changes the structure of their web
|
19
|
+
page. Unlike the API, which the search term search uses, Twitter makes no
|
20
|
+
guarantees of consistency for their web pages.
|
21
|
+
|
22
|
+
Note that this gem needs the gems HTTParty, Nokogiri, and json_pure. HTTParty should
|
23
|
+
install without any trouble when you install this. For Nokogiri, follow
|
24
|
+
the instructions here to install if you get an error:
|
25
|
+
http://nokogiri.org/tutorials/installing_nokogiri.html
|
26
|
+
|
27
|
+
== Examples:
|
28
|
+
|
29
|
+
Get the 40 most recent tweets from me (@sowersb), with location info on all
|
30
|
+
tweets:
|
31
|
+
require 'twitterscour'
|
32
|
+
brent_tweets = TwitterScour.from_user('sowersb', 2, true)
|
33
|
+
|
34
|
+
Get the 45 most recent tweets with the term Ruby in the tweet.
|
35
|
+
require 'twitterscour'
|
36
|
+
ruby_tweets = TwitterScour.search_term('Ruby', 3)
|
37
|
+
|
38
|
+
Author:: Brent Sowers (mailto:brent@coordinatecommons.com)
|
39
|
+
License:: You're free to do whatever you want with this
|
40
|
+
|
41
|
+
To post comments about this gem, visit my blog post at
|
42
|
+
http://rails.brentsowers.com/2010/11/new-twitterscour-gem.html
|
43
|
+
|
44
|
+
See more gems by me, my blog posts, etc. at http://coordinatecommons.com.
|
data/lib/tweet.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Object representing a single Tweet. Use the methods in TwitterScour to
|
2
|
+
# get Tweets.
|
3
|
+
class Tweet
|
4
|
+
# Name of the author of this tweet, without the @ symbol.
|
5
|
+
# If the tweet was a straight retweet without any added text, this is the original author.
|
6
|
+
attr_accessor :author_name
|
7
|
+
|
8
|
+
# URL for the author's picture/avatar
|
9
|
+
attr_accessor :author_pic
|
10
|
+
|
11
|
+
# The full text of the tweet. This does not contain any HTML/links.
|
12
|
+
attr_accessor :text
|
13
|
+
|
14
|
+
# A TweetLocation instance containing the location of the tweet, if the tweet has a location
|
15
|
+
attr_accessor :location
|
16
|
+
|
17
|
+
# Ruby Time for when this tweet was published
|
18
|
+
attr_accessor :time
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Class representing the location of a tweet.
|
2
|
+
class TweetLocation
|
3
|
+
# Text name for the location
|
4
|
+
attr_accessor :place_name
|
5
|
+
|
6
|
+
# Center point for the location, an array where first item is longitude,
|
7
|
+
# second is latitude
|
8
|
+
attr_accessor :center
|
9
|
+
|
10
|
+
# If the location is an area, this is an array of coordinates (array where
|
11
|
+
# first item is longitude, second latitude) for each point of the bounding
|
12
|
+
# box for the area
|
13
|
+
attr_accessor :bounding_box
|
14
|
+
end
|
data/lib/twitterscour.rb
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'httparty'
|
4
|
+
require File.dirname(__FILE__) + "/tweet"
|
5
|
+
require File.dirname(__FILE__) + "/tweet_location"
|
6
|
+
require 'json'
|
7
|
+
require 'cgi'
|
8
|
+
require 'time'
|
9
|
+
|
10
|
+
# Fetches Tweet objects from twitter.com based on the parameters that you
|
11
|
+
# specify for your search
|
12
|
+
class TwitterScour
|
13
|
+
# Currently, this is the number of tweets per page of results
|
14
|
+
TWEETS_PER_PAGE = 20
|
15
|
+
|
16
|
+
# Retrieves all tweets from the passed in username. An array of Tweet objects
|
17
|
+
# is returned.
|
18
|
+
# - username - Twitter username to search from. No @ symbol is necessary.
|
19
|
+
# - number_of_pages - By default, only up to 20 tweets (first page) will be
|
20
|
+
# returned. Specify more than one page here if you want more than 20. Note
|
21
|
+
# that each page is a separate HTTP request, so the higher the number of
|
22
|
+
# pages, the longer the operation will take.
|
23
|
+
# - fetch_location_info - By default, the location info will not be included,
|
24
|
+
# because to retrieve location info takes another HTTP request which can
|
25
|
+
# slow things down. If you want location set this to true
|
26
|
+
def self.from_user(username, number_of_pages=1, fetch_location_info=false)
|
27
|
+
rsp = HTTParty.get("http://twitter.com/#{username.gsub(/@/, "")}")
|
28
|
+
raise Exception.new("Error code returned from Twitter - #{rsp.code}") if rsp.code != 200
|
29
|
+
locations = {}
|
30
|
+
cur_page = 1
|
31
|
+
tweets = []
|
32
|
+
tweets_html = rsp.body
|
33
|
+
pagination_html = rsp.body
|
34
|
+
|
35
|
+
main_page = Nokogiri::HTML(rsp.body)
|
36
|
+
authenticity_token = main_page.css("input#authenticity_token").first[:value]
|
37
|
+
|
38
|
+
while rsp.code == 200
|
39
|
+
page_body = Nokogiri::HTML(tweets_html)
|
40
|
+
|
41
|
+
new_tweets = page_body.css('li.status').collect do |tw|
|
42
|
+
t = Tweet.new
|
43
|
+
if tw[:class] =~ /.* u\-(.*?) .*/
|
44
|
+
t.author_name = $1
|
45
|
+
end
|
46
|
+
t.text = tw.css("span.entry-content").text
|
47
|
+
# For some reason, time isn't in quotes in the JSON string which causes problems
|
48
|
+
t.time = Time.parse(tw.css("span.timestamp").first[:data].match(/\{time:'(.*)'\}/)[1])
|
49
|
+
meta_data_str = tw.css("span.entry-meta").first[:data]
|
50
|
+
if meta_data_str.length > 2
|
51
|
+
meta_data = JSON.parse(meta_data_str)
|
52
|
+
t.author_pic = meta_data["avatar_url"]
|
53
|
+
place_id = meta_data["place_id"]
|
54
|
+
if place_id && fetch_location_info
|
55
|
+
if locations[place_id]
|
56
|
+
t.location = locations[place_id]
|
57
|
+
else
|
58
|
+
geo_result = HTTParty.get("http://twitter.com/1/geo/id/#{place_id}.json?authenticity_token=#{authenticity_token}&twttr=true")
|
59
|
+
if geo_result && geo_result.code == 200 && geo_result.body &&
|
60
|
+
geo_result.body =~ /^\{.*/
|
61
|
+
geo_data = JSON.parse(geo_result.body)
|
62
|
+
if geo_data["geometry"] && geo_data["geometry"]["coordinates"]
|
63
|
+
loc = TweetLocation.new
|
64
|
+
loc.place_name = geo_data["name"]
|
65
|
+
if geo_data["geometry"]["type"] == "Point"
|
66
|
+
loc.center = geo_data["geometry"]["coordinates"]
|
67
|
+
elsif geo_data["geometry"]["type"] == "Polygon"
|
68
|
+
loc.bounding_box = geo_data["geometry"]["coordinates"].first
|
69
|
+
ll_sums = loc.bounding_box.inject([0,0]) {|sum, p| [sum[0] + p[0], sum[1] + p[1]]}
|
70
|
+
loc.center = [ll_sums[0] / loc.bounding_box.length, ll_sums[1] / loc.bounding_box.length]
|
71
|
+
end
|
72
|
+
t.location = loc
|
73
|
+
locations[place_id] = loc
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
t
|
80
|
+
end
|
81
|
+
tweets = tweets.concat(new_tweets)
|
82
|
+
cur_page += 1
|
83
|
+
if new_tweets.length == TWEETS_PER_PAGE && cur_page <= number_of_pages
|
84
|
+
pagination = Nokogiri::HTML(pagination_html)
|
85
|
+
next_link = pagination.css("a#more").first[:href]
|
86
|
+
unless next_link.include?("authenticity_token=")
|
87
|
+
next_link << "&authenticity_token=#{authenticity_token}"
|
88
|
+
end
|
89
|
+
rsp = HTTParty.get("http://twitter.com/#{next_link}")
|
90
|
+
pagination_html = rsp.body
|
91
|
+
tweets_html = rsp.body
|
92
|
+
else
|
93
|
+
break
|
94
|
+
end
|
95
|
+
end
|
96
|
+
tweets
|
97
|
+
end
|
98
|
+
|
99
|
+
# Returns the most recent tweets that contain the search term passed in. An
|
100
|
+
# array of Tweet objects is returned.
|
101
|
+
# - search_term - The term to search for. For a hashtag search, just pass
|
102
|
+
# in the whole search including the hash symbol.
|
103
|
+
# - number_of_pages - By default, only up to 15 tweets (first page) will be
|
104
|
+
# returned. Specify more than one page here if you want more than 15. Note
|
105
|
+
# that each page is a separate HTTP request, so the higher the number of
|
106
|
+
# pages, the longer the operation will take.
|
107
|
+
# Note that tweets from a search will not have a full location. If a location
|
108
|
+
# was attached, the center coordinates will be returned but no name or
|
109
|
+
# polygon
|
110
|
+
def self.search_term(search_term, number_of_pages=1)
|
111
|
+
term = CGI.escape(search_term)
|
112
|
+
url_base = "http://search.twitter.com/search.json"
|
113
|
+
url = url_base + "?q=#{CGI.escape(search_term)}"
|
114
|
+
rsp = HTTParty.get(url, :format => :json)
|
115
|
+
raise Exception.new("Rate limit exceeded, slow down") if rsp.code == 420
|
116
|
+
raise Exception.new("Error code returned from Twitter - #{rsp.code}") if rsp.code != 200
|
117
|
+
cur_page = 1
|
118
|
+
tweets = []
|
119
|
+
tweets_html = ""
|
120
|
+
results_per_page = 15
|
121
|
+
|
122
|
+
while rsp.code == 200
|
123
|
+
obj = JSON.parse(rsp.body)
|
124
|
+
if (obj["error"])
|
125
|
+
raise Exception.new("Got error from Twitter - " + obj["error"])
|
126
|
+
end
|
127
|
+
if obj["results_per_page"]
|
128
|
+
results_per_page = obj["results_per_page"]
|
129
|
+
end
|
130
|
+
new_tweets = []
|
131
|
+
obj["results"].each do |o|
|
132
|
+
t = Tweet.new
|
133
|
+
t.author_name = o["from_user"]
|
134
|
+
t.author_pic = o["profile_image_url"]
|
135
|
+
t.time = Time.parse(o["created_at"])
|
136
|
+
t.text = o["text"]
|
137
|
+
if o["geo"]
|
138
|
+
if o["geo"]["type"] == "Point"
|
139
|
+
loc = TweetLocation.new
|
140
|
+
loc.center = [o["geo"]["coordinates"][1], o["geo"]["coordinates"][0]]
|
141
|
+
t.location = loc
|
142
|
+
end
|
143
|
+
end
|
144
|
+
new_tweets << t
|
145
|
+
end
|
146
|
+
tweets = tweets.concat(new_tweets)
|
147
|
+
cur_page += 1
|
148
|
+
if new_tweets.length == results_per_page && cur_page <= number_of_pages
|
149
|
+
url = url_base + obj["next_page"]
|
150
|
+
rsp = HTTParty.get(url, :format => :json)
|
151
|
+
else
|
152
|
+
break
|
153
|
+
end
|
154
|
+
end
|
155
|
+
tweets
|
156
|
+
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
@@ -0,0 +1,1197 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="X-UA-Compatible" content="IE=8">
|
5
|
+
|
6
|
+
<script type="text/javascript">
|
7
|
+
//<![CDATA[
|
8
|
+
(function(g){var a=location.href.split("#!")[1];if(a){window.location.hash = "";g.location.pathname = g.HBR = a.replace(/^([^/])/,"/$1");}})(window);
|
9
|
+
//]]>
|
10
|
+
</script>
|
11
|
+
<script type="text/javascript" charset="utf-8">
|
12
|
+
if (!twttr) {
|
13
|
+
var twttr = {}
|
14
|
+
}
|
15
|
+
|
16
|
+
// Benchmarking load time.
|
17
|
+
// twttr.timeTillReadyUnique = '1289157602-97477-16888';
|
18
|
+
// twttr.timeTillReadyStart = new Date().getTime();
|
19
|
+
</script>
|
20
|
+
|
21
|
+
<script type="text/javascript">
|
22
|
+
//<![CDATA[
|
23
|
+
var page={};var onCondition=function(D,C,A,B){D=D;A=A?Math.min(A,5):5;B=B||100;if(D()){C()}else{if(A>1){setTimeout(function(){onCondition(D,C,A-1,B)},B)}}};
|
24
|
+
//]]>
|
25
|
+
</script>
|
26
|
+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
27
|
+
<meta content="en-us" http-equiv="Content-Language" />
|
28
|
+
<meta content="Ruby on Rails software developer, Nationals fan, metalhead" name="description" />
|
29
|
+
<meta content="no" http-equiv="imagetoolbar" />
|
30
|
+
<meta content="width = 780" name="viewport" />
|
31
|
+
<meta content="4FTTxY4uvo0RZTMQqIyhh18HsepyJOctQ+XTOu1zsfE=" name="verify-v1" />
|
32
|
+
<meta content="1" name="page" />
|
33
|
+
<meta content="NOODP" name="robots" />
|
34
|
+
<meta content="n" name="session-loggedin" />
|
35
|
+
<meta content="sowersb" name="page-user-screen_name" />
|
36
|
+
<title id="page_title">Brent Sowers (sowersb) on Twitter</title>
|
37
|
+
<link href="http://a1.twimg.com/a/1288981003/images/twitter_57.png" rel="apple-touch-icon" />
|
38
|
+
<link href="/oexchange.xrd" rel="http://oexchange.org/spec/0.8/rel/related-target" type="application/xrd+xml" />
|
39
|
+
<link href="http://a1.twimg.com/a/1288981003/images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
40
|
+
<link rel="alternate" href="http://twitter.com/statuses/user_timeline/170030823.rss" title="sowersb's Tweets" type="application/rss+xml" />
|
41
|
+
<link rel="alternate" href="http://twitter.com/favorites/170030823.rss" title="sowersb's Favorites" type="application/rss+xml" />
|
42
|
+
|
43
|
+
|
44
|
+
<link href="http://a3.twimg.com/a/1288981003/stylesheets/twitter.css?1288982890" media="screen" rel="stylesheet" type="text/css" />
|
45
|
+
<link href="http://a3.twimg.com/a/1288981003/stylesheets/geo.css?1288982890" media="screen" rel="stylesheet" type="text/css" />
|
46
|
+
<link href="http://a3.twimg.com/a/1288981003/stylesheets/buttons_new.css?1288982890" media="screen" rel="stylesheet" type="text/css" />
|
47
|
+
<style type="text/css">
|
48
|
+
|
49
|
+
body {
|
50
|
+
background: #C6E2EE url('http://s.twimg.com/a/1288470193/images/themes/theme2/bg.gif') fixed no-repeat;
|
51
|
+
|
52
|
+
}
|
53
|
+
|
54
|
+
body#show #content .meta a.screen-name,
|
55
|
+
#content .shared-content .screen-name,
|
56
|
+
#content .meta .byline a {
|
57
|
+
color: #1F98C7;
|
58
|
+
}
|
59
|
+
|
60
|
+
/* Link Color */
|
61
|
+
a,
|
62
|
+
#content tr.hentry:hover a,
|
63
|
+
body#profile #content div.hentry:hover a,
|
64
|
+
#side .stats a:hover span.stats_count,
|
65
|
+
#side div.user_icon a:hover,
|
66
|
+
li.verified-profile a:hover,
|
67
|
+
#side .promotion .definition strong,
|
68
|
+
p.list-numbers a:hover,
|
69
|
+
#side div.user_icon a:hover span,
|
70
|
+
#content .tabMenu li a,
|
71
|
+
.translator-profile a:hover,
|
72
|
+
#local_trend_locations li a,
|
73
|
+
.modal-content .list-slug,
|
74
|
+
.tweet-label a:hover,
|
75
|
+
ol.statuses li.garuda-tweet:hover .actions-hover li span a,
|
76
|
+
ol.statuses li.garuda-tweet .actions-hover li span a:hover {
|
77
|
+
color: #1F98C7;
|
78
|
+
}
|
79
|
+
|
80
|
+
body,
|
81
|
+
ul#tabMenu li a, #side .section h1,
|
82
|
+
#side .stat a,
|
83
|
+
#side .stats a span.stats_count,
|
84
|
+
#side div.section-header h1,
|
85
|
+
#side div.user_icon a,
|
86
|
+
#side div.user_icon a:hover,
|
87
|
+
#side div.section-header h3.faq-header,
|
88
|
+
ul.sidebar-menu li.active a,
|
89
|
+
li.verified-profile a,
|
90
|
+
#side .promotion a,
|
91
|
+
body #content .list-header h2,
|
92
|
+
p.list-numbers a,
|
93
|
+
.bar h3 label,
|
94
|
+
body.timeline #content h1,
|
95
|
+
.list-header h2 a span,
|
96
|
+
#content .tabMenu li.active a,
|
97
|
+
body#direct_messages #content .tabMenu #inbox_tab a,
|
98
|
+
body#inbox #content .tabMenu #inbox_tab a,
|
99
|
+
body#sent #content .tabMenu #sent_tab a,
|
100
|
+
body#direct_messages #content .tabMenu #inbox_tab a,
|
101
|
+
body#retweets_by_others #content .tabMenu #retweets_by_others_tab a,
|
102
|
+
body#retweets #content .tabMenu #retweets_tab a,
|
103
|
+
body#retweeted_by_others #content .tabMenu #retweeted_by_others_tab a,
|
104
|
+
body#retweeted_of_mine #content .tabMenu #retweeted_of_mine_tab a,
|
105
|
+
.translator-profile a,
|
106
|
+
#owners_lists h2 a {
|
107
|
+
color: #663B12;
|
108
|
+
}
|
109
|
+
|
110
|
+
.email-address-nag-banner {
|
111
|
+
border-bottom: solid 1px #C6E2EE;
|
112
|
+
}
|
113
|
+
#side_base {
|
114
|
+
border-left:1px solid #C6E2EE;
|
115
|
+
background-color: #DAECF4;
|
116
|
+
}
|
117
|
+
|
118
|
+
ul.sidebar-menu li.active a,
|
119
|
+
ul.sidebar-menu li a:hover,
|
120
|
+
#side div#custom_search.active,
|
121
|
+
#side .promotion,
|
122
|
+
.notify div {
|
123
|
+
background-color: #EAFCFF;
|
124
|
+
}
|
125
|
+
|
126
|
+
.list-header,
|
127
|
+
.list-controls,
|
128
|
+
ul.sidebar-list li.active a,
|
129
|
+
ul.sidebar-list li a:hover,
|
130
|
+
.list-header-inner {
|
131
|
+
background-color: #DAECF4 !important;
|
132
|
+
}
|
133
|
+
|
134
|
+
#side .actions,
|
135
|
+
#side .promo,
|
136
|
+
#design .side-section {
|
137
|
+
border: 1px solid #C6E2EE;
|
138
|
+
}
|
139
|
+
|
140
|
+
#side div.section-header h3 {
|
141
|
+
border-bottom: 1px solid #C6E2EE;
|
142
|
+
}
|
143
|
+
|
144
|
+
#side p.sidebar-location {
|
145
|
+
border-bottom: 1px dotted #C6E2EE;
|
146
|
+
}
|
147
|
+
|
148
|
+
#side hr {
|
149
|
+
background: #C6E2EE;
|
150
|
+
color: #C6E2EE;
|
151
|
+
}
|
152
|
+
|
153
|
+
ul.sidebar-menu li.loading a {
|
154
|
+
background: #EAFCFF url('http://a1.twimg.com/a/1288981003/images/spinner.gif') no-repeat 171px 0.5em !important;
|
155
|
+
}
|
156
|
+
|
157
|
+
#side .collapsible h2.sidebar-title {
|
158
|
+
background: transparent url('http://a2.twimg.com/a/1288981003/images/toggle_up_dark.png') no-repeat center right !important;
|
159
|
+
}
|
160
|
+
|
161
|
+
#side .collapsible.collapsed h2.sidebar-title {
|
162
|
+
background: transparent url('http://a1.twimg.com/a/1288981003/images/toggle_down_dark.png') no-repeat center right !important;
|
163
|
+
}
|
164
|
+
|
165
|
+
#side ul.lists-links li a em {
|
166
|
+
background: url('http://a3.twimg.com/a/1288981003/images/arrow_right_dark.png') no-repeat left top;
|
167
|
+
}
|
168
|
+
|
169
|
+
#side span.pipe {
|
170
|
+
border-left:1px solid #C6E2EE;
|
171
|
+
}
|
172
|
+
|
173
|
+
#list_subscriptions span.view-all,
|
174
|
+
#list_memberships span.view-all,
|
175
|
+
#profile span.view-all,
|
176
|
+
#profile_favorites span.view-all,
|
177
|
+
#following span.view-all,
|
178
|
+
#followers span.view-all {
|
179
|
+
border-left: 0;
|
180
|
+
}
|
181
|
+
|
182
|
+
a.edit-list {
|
183
|
+
border-right: 1px solid #C6E2EE !important;
|
184
|
+
}
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
</style>
|
189
|
+
<link href="http://a2.twimg.com/a/1288981003/stylesheets/following.css?1288982890" media="screen, projection" rel="stylesheet" type="text/css" />
|
190
|
+
|
191
|
+
</head>
|
192
|
+
|
193
|
+
<body class="account signin-island" id="profile"> <div class="fixed-banners">
|
194
|
+
|
195
|
+
|
196
|
+
</div>
|
197
|
+
<script type="text/javascript">
|
198
|
+
//<![CDATA[
|
199
|
+
if (window.top !== window.self) {document.write = "";window.top.location = window.self.location; setTimeout(function(){document.body.innerHTML='';},1);window.self.onload=function(evt){document.body.innerHTML='';};}
|
200
|
+
//]]>
|
201
|
+
</script>
|
202
|
+
|
203
|
+
<div id="dim-screen"></div>
|
204
|
+
<ul id="accessibility" class="offscreen">
|
205
|
+
<li><a href="#content" accesskey="0">Skip past navigation</a></li>
|
206
|
+
<li>On a mobile phone? Check out <a href="http://m.twitter.com/">m.twitter.com</a>!</li>
|
207
|
+
<li><a href="#footer" accesskey="2">Skip to navigation</a></li>
|
208
|
+
<li><a href="#signin">Skip to sign in form</a></li>
|
209
|
+
</ul>
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
<div id="container" class="subpage">
|
215
|
+
<span id="loader" style="display:none"><img alt="Loader" src="http://a0.twimg.com/a/1288981003/images/loader.gif" /></span>
|
216
|
+
|
217
|
+
<div class="clearfix" id="header">
|
218
|
+
<a href="http://twitter.com/" title="Twitter / Home" accesskey="1" id="logo">
|
219
|
+
<img alt="Twitter.com" src="http://a0.twimg.com/a/1288981003/images/twitter_logo_header.png" />
|
220
|
+
</a>
|
221
|
+
<form method="post" id="sign_out_form" action="/sessions/destroy" style="display:none;">
|
222
|
+
<input name="authenticity_token" value="1e78388a93644bf413352a320a1a766378ba4cea" type="hidden"/>
|
223
|
+
</form>
|
224
|
+
|
225
|
+
|
226
|
+
<div id="signin_controls">
|
227
|
+
<span id="have_an_account">
|
228
|
+
Have an account?<a href="/login" class="signin" tabindex="3"><span>Sign in</span></a></span>
|
229
|
+
<div id="signin_menu" class="common-form standard-form offscreen">
|
230
|
+
|
231
|
+
<form method="post" id="signin" action="https://twitter.com/sessions">
|
232
|
+
|
233
|
+
<input id="authenticity_token" name="authenticity_token" type="hidden" value="1e78388a93644bf413352a320a1a766378ba4cea" /> <input id="return_to_ssl" name="return_to_ssl" type="hidden" value="false" />
|
234
|
+
<p class="textbox">
|
235
|
+
<label for="username">Username or email</label>
|
236
|
+
<input type="text" id="username" name="session[username_or_email]" value="" title="username" tabindex="4"/>
|
237
|
+
</p>
|
238
|
+
|
239
|
+
<p class="textbox">
|
240
|
+
<label for="password">Password</label>
|
241
|
+
<input type="password" id="password" name="session[password]" value="" title="password" tabindex="5"/>
|
242
|
+
</p>
|
243
|
+
|
244
|
+
<p class="remember">
|
245
|
+
<input type="submit" id="signin_submit" value="Sign in" tabindex="7"/>
|
246
|
+
<input type="checkbox" id="remember" name="remember_me" value="1" tabindex="6"/>
|
247
|
+
<label for="remember">Remember me</label>
|
248
|
+
</p>
|
249
|
+
|
250
|
+
<p class="forgot">
|
251
|
+
<a href="/account/resend_password" id="resend_password_link">Forgot password?</a>
|
252
|
+
</p>
|
253
|
+
|
254
|
+
<p class="forgot-username">
|
255
|
+
<a href="/account/resend_password" id="forgot_username_link" title="If you remember your password, try logging in with your email">Forgot username?</a>
|
256
|
+
</p>
|
257
|
+
<p class="complete">
|
258
|
+
<a href="/account/complete" id="account_complete_link">Already using Twitter on your phone?</a>
|
259
|
+
</p>
|
260
|
+
<input type="hidden" name="q" id="signin_q" value=""/>
|
261
|
+
</form>
|
262
|
+
</div>
|
263
|
+
|
264
|
+
</div>
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
</div>
|
270
|
+
|
271
|
+
|
272
|
+
<div id="profilebox_outer" class="home_page_new_home_page">
|
273
|
+
<div id="profilebox" class="clearfix">
|
274
|
+
<div id="profiletext">
|
275
|
+
<h1>
|
276
|
+
<span>Get short, timely messages from Brent Sowers.</span>
|
277
|
+
</h1>
|
278
|
+
|
279
|
+
<h2>Twitter is a rich source of instantly updated information. It's easy to stay updated on an incredibly wide variety of topics. <strong><a href='/signup?follow=sowersb'>Join today</a></strong> and <strong>follow @sowersb</strong>.</h2>
|
280
|
+
</div>
|
281
|
+
<div id="profilebutton">
|
282
|
+
<form action="/signup" id="account_signup_form" method="get" name="account_signup_form"> <input id="follow" name="follow" type="hidden" value="sowersb" />
|
283
|
+
<input class="profilesubmit" id="profile_submit" name="commit" type="submit" value="Sign Up ›" />
|
284
|
+
</form>
|
285
|
+
<p id="profilebox-mobile">
|
286
|
+
<span class="sms-follow-instructions">Get updates via SMS by texting <strong>follow sowersb</strong> to <strong>40404</strong> in the United States</span><br/>
|
287
|
+
<a id="sms_codes_link">
|
288
|
+
<span>Codes for other countries</span>
|
289
|
+
</a>
|
290
|
+
<div id="sms_codes">
|
291
|
+
<table celspacing="0" celpadding="0">
|
292
|
+
<thead>
|
293
|
+
<tr class="title">
|
294
|
+
<td colspan="3">Two-way (sending and receiving) short codes:</td>
|
295
|
+
</tr>
|
296
|
+
</thead>
|
297
|
+
<tbody>
|
298
|
+
<tr>
|
299
|
+
<th class="sms-country">Country</th>
|
300
|
+
<th class="sms-code">Code</th>
|
301
|
+
<th class="sms-network">For customers of</th>
|
302
|
+
</tr>
|
303
|
+
<tr>
|
304
|
+
<td class="sms-country">Australia</td>
|
305
|
+
<td colspan="2" class="sms-code-network">
|
306
|
+
<ul>
|
307
|
+
|
308
|
+
<li>
|
309
|
+
<span class="sms-code">0198089488</span>
|
310
|
+
<span class="sms-network">Telstra</span>
|
311
|
+
</li>
|
312
|
+
|
313
|
+
</ul>
|
314
|
+
</td>
|
315
|
+
</tr><tr>
|
316
|
+
<td class="sms-country">Canada</td>
|
317
|
+
<td colspan="2" class="sms-code-network">
|
318
|
+
<ul>
|
319
|
+
|
320
|
+
<li>
|
321
|
+
<span class="sms-code">21212</span>
|
322
|
+
<span class="sms-network">(any)</span>
|
323
|
+
</li>
|
324
|
+
|
325
|
+
</ul>
|
326
|
+
</td>
|
327
|
+
</tr><tr>
|
328
|
+
<td class="sms-country">United Kingdom</td>
|
329
|
+
<td colspan="2" class="sms-code-network">
|
330
|
+
<ul>
|
331
|
+
|
332
|
+
<li>
|
333
|
+
<span class="sms-code">86444</span>
|
334
|
+
<span class="sms-network">Vodafone, Orange, 3, O2</span>
|
335
|
+
</li>
|
336
|
+
|
337
|
+
</ul>
|
338
|
+
</td>
|
339
|
+
</tr><tr>
|
340
|
+
<td class="sms-country">Indonesia</td>
|
341
|
+
<td colspan="2" class="sms-code-network">
|
342
|
+
<ul>
|
343
|
+
|
344
|
+
<li>
|
345
|
+
<span class="sms-code">89887</span>
|
346
|
+
<span class="sms-network">AXIS, 3, Telkomsel</span>
|
347
|
+
</li>
|
348
|
+
|
349
|
+
</ul>
|
350
|
+
</td>
|
351
|
+
</tr><tr>
|
352
|
+
<td class="sms-country">Ireland</td>
|
353
|
+
<td colspan="2" class="sms-code-network">
|
354
|
+
<ul>
|
355
|
+
|
356
|
+
<li>
|
357
|
+
<span class="sms-code">51210</span>
|
358
|
+
<span class="sms-network">O2</span>
|
359
|
+
</li>
|
360
|
+
|
361
|
+
</ul>
|
362
|
+
</td>
|
363
|
+
</tr><tr>
|
364
|
+
<td class="sms-country">India</td>
|
365
|
+
<td colspan="2" class="sms-code-network">
|
366
|
+
<ul>
|
367
|
+
|
368
|
+
<li>
|
369
|
+
<span class="sms-code">53000</span>
|
370
|
+
<span class="sms-network">Bharti Airtel, Videocon</span>
|
371
|
+
</li>
|
372
|
+
|
373
|
+
</ul>
|
374
|
+
</td>
|
375
|
+
</tr><tr>
|
376
|
+
<td class="sms-country">Jordan</td>
|
377
|
+
<td colspan="2" class="sms-code-network">
|
378
|
+
<ul>
|
379
|
+
|
380
|
+
<li>
|
381
|
+
<span class="sms-code">90903</span>
|
382
|
+
<span class="sms-network">Zain</span>
|
383
|
+
</li>
|
384
|
+
|
385
|
+
</ul>
|
386
|
+
</td>
|
387
|
+
</tr><tr>
|
388
|
+
<td class="sms-country">New Zealand</td>
|
389
|
+
<td colspan="2" class="sms-code-network">
|
390
|
+
<ul>
|
391
|
+
|
392
|
+
<li>
|
393
|
+
<span class="sms-code">8987</span>
|
394
|
+
<span class="sms-network">Vodafone, Telecom NZ</span>
|
395
|
+
</li>
|
396
|
+
|
397
|
+
</ul>
|
398
|
+
</td>
|
399
|
+
</tr><tr>
|
400
|
+
<td class="sms-country">United States</td>
|
401
|
+
<td colspan="2" class="sms-code-network">
|
402
|
+
<ul>
|
403
|
+
|
404
|
+
<li>
|
405
|
+
<span class="sms-code">40404</span>
|
406
|
+
<span class="sms-network">(any)</span>
|
407
|
+
</li>
|
408
|
+
|
409
|
+
</ul>
|
410
|
+
</td>
|
411
|
+
</tr>
|
412
|
+
</tbody>
|
413
|
+
</table>
|
414
|
+
</div>
|
415
|
+
|
416
|
+
</p>
|
417
|
+
</div>
|
418
|
+
</div>
|
419
|
+
</div>
|
420
|
+
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
<div class="content-bubble-arrow"></div>
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
<table cellspacing="0" class="columns">
|
430
|
+
<tbody>
|
431
|
+
<tr>
|
432
|
+
<td id="content" class="round-left column">
|
433
|
+
<div class="wrapper">
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
<div class="profile-user">
|
444
|
+
<div id="user_170030823" class="user ">
|
445
|
+
<h2 class="thumb clearfix">
|
446
|
+
<a href="/account/profile_image/sowersb?hreflang=en"><img alt="" border="0" height="73" id="profile-image" src="http://a3.twimg.com/profile_images/1084691799/Brent-sm_bigger.jpg" valign="middle" width="73" /></a>
|
447
|
+
<div class="screen-name">sowersb</div>
|
448
|
+
</h2>
|
449
|
+
</div>
|
450
|
+
</div>
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<div id="similar_to_followed"></div>
|
455
|
+
|
456
|
+
<div class="section">
|
457
|
+
|
458
|
+
<div id="timeline_heading" style="display: none;">
|
459
|
+
<h1 id="heading"></h1>
|
460
|
+
</div>
|
461
|
+
<ol id='timeline' class='statuses'>
|
462
|
+
<li class="hentry u-sowersb status latest-status" id="status_29524461332"
|
463
|
+
>
|
464
|
+
<span class="status-body">
|
465
|
+
<span class="status-content">
|
466
|
+
<span class="entry-content">It's looking bad for Democrats, but at least Linda McMahon loses in CT, fortunately it's not best 2 of 3 falls.</span>
|
467
|
+
</span>
|
468
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
469
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/29524461332">
|
470
|
+
<span class="published timestamp" data="{time:'Wed Nov 03 00:58:15 +0000 2010'}">4:58 PM Nov 2nd</span></a>
|
471
|
+
<span>via web</span>
|
472
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
473
|
+
</span>
|
474
|
+
|
475
|
+
<ul class="meta-data clearfix">
|
476
|
+
</ul>
|
477
|
+
</span>
|
478
|
+
</li>
|
479
|
+
<li class="hentry u-sowersb status" id="status_29431628530"
|
480
|
+
>
|
481
|
+
<span class="status-body">
|
482
|
+
<span class="status-content">
|
483
|
+
<span class="entry-content">Yeah <a href="/search?q=%23Giants" title="#Giants" class="tweet-url hashtag" rel="nofollow">#Giants</a>! Good pitching always beats good hitting. Finally a team I like wins the world series, first time since the 05 White Sox</span>
|
484
|
+
</span>
|
485
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
486
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/29431628530">
|
487
|
+
<span class="published timestamp" data="{time:'Tue Nov 02 02:34:03 +0000 2010'}">6:34 PM Nov 1st</span></a>
|
488
|
+
<span>via web</span>
|
489
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
490
|
+
</span>
|
491
|
+
|
492
|
+
<ul class="meta-data clearfix">
|
493
|
+
</ul>
|
494
|
+
</span>
|
495
|
+
</li>
|
496
|
+
<li class="hentry u-sowersb status" id="status_29223429095"
|
497
|
+
>
|
498
|
+
<span class="status-body">
|
499
|
+
<span class="status-content">
|
500
|
+
<span class="entry-content">Perfect day today for a nice hike of buzzards rock trail</span>
|
501
|
+
</span>
|
502
|
+
<span class="meta entry-meta" data='{"latlng":[38.864994,-77.061775],"place_id":"4580183ad6f11e28","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
503
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/29223429095">
|
504
|
+
<span class="published timestamp" data="{time:'Sat Oct 30 22:43:03 +0000 2010'}">3:43 PM Oct 30th</span></a>
|
505
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
506
|
+
from <a href="http://maps.google.com/maps?q=38.864994,-77.061775" class="geocoded_google_link" target="_blank">Aurora Highlands, Arlington <span class='geo-pin'> </span></a>
|
507
|
+
</span>
|
508
|
+
|
509
|
+
<ul class="meta-data clearfix">
|
510
|
+
</ul>
|
511
|
+
</span>
|
512
|
+
</li>
|
513
|
+
<li class="hentry u-sowersb status" id="status_28940872142"
|
514
|
+
>
|
515
|
+
<span class="status-body">
|
516
|
+
<span class="status-content">
|
517
|
+
<span class="entry-content">My prediction.. <a href="/search?q=%23Giants" title="#Giants" class="tweet-url hashtag" rel="nofollow">#Giants</a> in 7 games</span>
|
518
|
+
</span>
|
519
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
520
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/28940872142">
|
521
|
+
<span class="published timestamp" data="{time:'Thu Oct 28 00:33:52 +0000 2010'}">5:33 PM Oct 27th</span></a>
|
522
|
+
<span>via web</span>
|
523
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
524
|
+
</span>
|
525
|
+
|
526
|
+
<ul class="meta-data clearfix">
|
527
|
+
</ul>
|
528
|
+
</span>
|
529
|
+
</li>
|
530
|
+
<li class="hentry u-sowersb status" id="status_28837336848"
|
531
|
+
>
|
532
|
+
<span class="status-body">
|
533
|
+
<span class="status-content">
|
534
|
+
<span class="entry-content">For weather geeks.. RT @<a class="tweet-url username" href="/TWCBreaking" rel="nofollow">TWCBreaking</a>: Record lowest U.S. land-based pressure! Orr, MN now at 955.5 mb, besting the record from ... '78!</span>
|
535
|
+
</span>
|
536
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
537
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/28837336848">
|
538
|
+
<span class="published timestamp" data="{time:'Tue Oct 26 23:40:18 +0000 2010'}">4:40 PM Oct 26th</span></a>
|
539
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
540
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
541
|
+
</span>
|
542
|
+
|
543
|
+
<ul class="meta-data clearfix">
|
544
|
+
</ul>
|
545
|
+
</span>
|
546
|
+
</li>
|
547
|
+
<li class="hentry u-sowersb status" id="status_28461486926"
|
548
|
+
>
|
549
|
+
<span class="status-body">
|
550
|
+
<span class="status-content">
|
551
|
+
<span class="entry-content">Go <a href="/search?q=%23Rangers" title="#Rangers" class="tweet-url hashtag" rel="nofollow">#Rangers</a>! My hope of not having a repeat Yankees-Phillies world series is looking more likely.</span>
|
552
|
+
</span>
|
553
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
554
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/28461486926">
|
555
|
+
<span class="published timestamp" data="{time:'Sat Oct 23 02:07:49 +0000 2010'}">7:07 PM Oct 22nd</span></a>
|
556
|
+
<span>via web</span>
|
557
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
558
|
+
</span>
|
559
|
+
|
560
|
+
<ul class="meta-data clearfix">
|
561
|
+
</ul>
|
562
|
+
</span>
|
563
|
+
</li>
|
564
|
+
<li class="hentry u-sowersb status" id="status_28069006740"
|
565
|
+
>
|
566
|
+
<span class="status-body">
|
567
|
+
<span class="status-content">
|
568
|
+
<span class="entry-content"><a href="http://apidock.com" class="tweet-url web" rel="nofollow" target="_blank">apidock.com</a> is coming in handy now that the official online Rails APIs are at version 3</span>
|
569
|
+
</span>
|
570
|
+
<span class="meta entry-meta" data='{}'>
|
571
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/28069006740">
|
572
|
+
<span class="published timestamp" data="{time:'Thu Oct 21 23:03:49 +0000 2010'}">4:03 PM Oct 21st</span></a>
|
573
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
574
|
+
|
575
|
+
</span>
|
576
|
+
|
577
|
+
<ul class="meta-data clearfix">
|
578
|
+
</ul>
|
579
|
+
</span>
|
580
|
+
</li>
|
581
|
+
<li class="hentry u-sowersb status" id="status_27558575415"
|
582
|
+
>
|
583
|
+
<span class="status-body">
|
584
|
+
<span class="status-content">
|
585
|
+
<span class="entry-content">Don't think I can drop my Verizon landline, TV and Internet will cost more than the TV, Internet, and landline FIOS package.</span>
|
586
|
+
</span>
|
587
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
588
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/27558575415">
|
589
|
+
<span class="published timestamp" data="{time:'Sat Oct 16 17:03:49 +0000 2010'}">10:03 AM Oct 16th</span></a>
|
590
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
591
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
592
|
+
</span>
|
593
|
+
|
594
|
+
<ul class="meta-data clearfix">
|
595
|
+
</ul>
|
596
|
+
</span>
|
597
|
+
</li>
|
598
|
+
<li class="hentry u-sowersb status" id="status_27091446272"
|
599
|
+
>
|
600
|
+
<span class="status-body">
|
601
|
+
<span class="status-content">
|
602
|
+
<span class="entry-content">I'm shocked, something awesome in Linux that Windows and Mac don't have that normal people would like: <a href="https://edge.one.ubuntu.com/mobile/" class="tweet-url web" rel="nofollow" target="_blank">https://edge.one.ubuntu.com/mobile/</a></span>
|
603
|
+
</span>
|
604
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
605
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/27091446272">
|
606
|
+
<span class="published timestamp" data="{time:'Tue Oct 12 01:23:23 +0000 2010'}">6:23 PM Oct 11th</span></a>
|
607
|
+
<span>via web</span>
|
608
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
609
|
+
</span>
|
610
|
+
|
611
|
+
<ul class="meta-data clearfix">
|
612
|
+
</ul>
|
613
|
+
</span>
|
614
|
+
</li>
|
615
|
+
<li class="hentry u-sowersb status" id="status_26947381137"
|
616
|
+
>
|
617
|
+
<span class="status-body">
|
618
|
+
<span class="status-content">
|
619
|
+
<span class="entry-content">Poor Twins, 4 division series against Yankees in past 8 seasons, they've lost all 4, 2 of them sweeps.</span>
|
620
|
+
</span>
|
621
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
622
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26947381137">
|
623
|
+
<span class="published timestamp" data="{time:'Sun Oct 10 15:44:06 +0000 2010'}">8:44 AM Oct 10th</span></a>
|
624
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
625
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
626
|
+
</span>
|
627
|
+
|
628
|
+
<ul class="meta-data clearfix">
|
629
|
+
</ul>
|
630
|
+
</span>
|
631
|
+
</li>
|
632
|
+
|
633
|
+
<li class="hentry u-mattcutts share status" id="status_26875976861"
|
634
|
+
>
|
635
|
+
<span class="status-body">
|
636
|
+
<span class="big-retweet-icon" title="Retweets from people you follow appear in your timeline."></span>
|
637
|
+
<strong><a href="http://twitter.com/mattcutts" class="tweet-url screen-name">mattcutts</a></strong>
|
638
|
+
|
639
|
+
<span class="entry-content">In case you've doubted that Google is innovative: <a href="http://goo.gl/0IVD" class="tweet-url web" rel="nofollow" target="_blank">http://goo.gl/0IVD</a> Meet our cars. Cars. That drive. Themselves. :)</span>
|
640
|
+
<span class="meta entry-meta" data='{}'>
|
641
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/mattcutts/status/26872713957">
|
642
|
+
<span class="published timestamp" data="{time:'Sat Oct 09 20:08:09 +0000 2010'}">1:08 PM Oct 9th</span></a>
|
643
|
+
<span>via web</span>
|
644
|
+
|
645
|
+
</span>
|
646
|
+
|
647
|
+
<span class="meta entry-meta retweet-meta">
|
648
|
+
<span class="shared-content">Retweeted by <a href="/sowersb" class="screen-name timestamp-title" data="{time:"Sat Oct 09 21:00:12 +0000 2010"}" title="28 days ago">sowersb</a> and 100+ others</span>
|
649
|
+
</span>
|
650
|
+
|
651
|
+
<ul class="meta-data clearfix">
|
652
|
+
</ul>
|
653
|
+
</span>
|
654
|
+
</li >
|
655
|
+
<li class="hentry u-sowersb status" id="status_26672361352"
|
656
|
+
>
|
657
|
+
<span class="status-body">
|
658
|
+
<span class="status-content">
|
659
|
+
<span class="entry-content">Weird. Just saw hundreds of people with bags with orange straps walk by and Pentagon police blocking the intersection off. Should I run?</span>
|
660
|
+
</span>
|
661
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
662
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26672361352">
|
663
|
+
<span class="published timestamp" data="{time:'Thu Oct 07 17:54:31 +0000 2010'}">10:54 AM Oct 7th</span></a>
|
664
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
665
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
666
|
+
</span>
|
667
|
+
|
668
|
+
<ul class="meta-data clearfix">
|
669
|
+
</ul>
|
670
|
+
</span>
|
671
|
+
</li>
|
672
|
+
<li class="hentry u-sowersb status" id="status_26605266853"
|
673
|
+
>
|
674
|
+
<span class="status-body">
|
675
|
+
<span class="status-content">
|
676
|
+
<span class="entry-content">This <a href="/search?q=%23Postseason" title="#Postseason" class="tweet-url hashtag" rel="nofollow">#Postseason</a> is pretty great so far, and we've got 4 more weeks of it to go!</span>
|
677
|
+
</span>
|
678
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
679
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26605266853">
|
680
|
+
<span class="published timestamp" data="{time:'Thu Oct 07 01:15:48 +0000 2010'}">6:15 PM Oct 6th</span></a>
|
681
|
+
<span>via web</span>
|
682
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
683
|
+
</span>
|
684
|
+
|
685
|
+
<ul class="meta-data clearfix">
|
686
|
+
</ul>
|
687
|
+
</span>
|
688
|
+
</li>
|
689
|
+
<li class="hentry u-sowersb status" id="status_26504017057"
|
690
|
+
>
|
691
|
+
<span class="status-body">
|
692
|
+
<span class="status-content">
|
693
|
+
<span class="entry-content">Documenting almost 4 years of work on a project is a daunting task, I'm gonna have a whole book written by the end.</span>
|
694
|
+
</span>
|
695
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
696
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26504017057">
|
697
|
+
<span class="published timestamp" data="{time:'Wed Oct 06 00:13:39 +0000 2010'}">5:13 PM Oct 5th</span></a>
|
698
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
699
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
700
|
+
</span>
|
701
|
+
|
702
|
+
<ul class="meta-data clearfix">
|
703
|
+
</ul>
|
704
|
+
</span>
|
705
|
+
</li>
|
706
|
+
<li class="hentry u-sowersb status" id="status_26323803751"
|
707
|
+
>
|
708
|
+
<span class="status-body">
|
709
|
+
<span class="status-content">
|
710
|
+
<span class="entry-content">Godsmack is pretty awesome here, enough to make me forget that its cold</span>
|
711
|
+
</span>
|
712
|
+
<span class="meta entry-meta" data='{"place_id":"923f01273a937690","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
713
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26323803751">
|
714
|
+
<span class="published timestamp" data="{time:'Mon Oct 04 02:06:29 +0000 2010'}">7:06 PM Oct 3rd</span></a>
|
715
|
+
<span>via <a href="http://mobile.twitter.com" rel="nofollow">Mobile Web</a></span>
|
716
|
+
from <a href="http://maps.google.com/maps?q=Columbia, MD" class="geocoded_google_link" target="_blank">Columbia, MD</a>
|
717
|
+
</span>
|
718
|
+
|
719
|
+
<ul class="meta-data clearfix">
|
720
|
+
</ul>
|
721
|
+
</span>
|
722
|
+
</li>
|
723
|
+
<li class="hentry u-sowersb status" id="status_26294264501"
|
724
|
+
>
|
725
|
+
<span class="status-body">
|
726
|
+
<span class="status-content">
|
727
|
+
<span class="entry-content">Nationals <a href="/search?q=%23Game162" title="#Game162" class="tweet-url hashtag" rel="nofollow">#Game162</a> is yet another close one, so many close games this season!</span>
|
728
|
+
</span>
|
729
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
730
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26294264501">
|
731
|
+
<span class="published timestamp" data="{time:'Sun Oct 03 19:32:56 +0000 2010'}">12:32 PM Oct 3rd</span></a>
|
732
|
+
<span>via web</span>
|
733
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
734
|
+
</span>
|
735
|
+
|
736
|
+
<ul class="meta-data clearfix">
|
737
|
+
</ul>
|
738
|
+
</span>
|
739
|
+
</li>
|
740
|
+
<li class="hentry u-sowersb status" id="status_26191471141"
|
741
|
+
>
|
742
|
+
<span class="status-body">
|
743
|
+
<span class="status-content">
|
744
|
+
<span class="entry-content">@<a class="tweet-url username" href="/jaysonst" rel="nofollow">jaysonst</a> Love the article today, never realized hitting home runs was so dangerous!</span>
|
745
|
+
</span>
|
746
|
+
<span class="meta entry-meta" data='{}'>
|
747
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/26191471141">
|
748
|
+
<span class="published timestamp" data="{time:'Sat Oct 02 17:05:24 +0000 2010'}">10:05 AM Oct 2nd</span></a>
|
749
|
+
<span>via <a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></span>
|
750
|
+
|
751
|
+
<a href="http://twitter.com/jaysonst/status/26179202278">in reply to jaysonst</a></span>
|
752
|
+
|
753
|
+
<ul class="meta-data clearfix">
|
754
|
+
</ul>
|
755
|
+
</span>
|
756
|
+
</li>
|
757
|
+
<li class="hentry u-sowersb status" id="status_25963955309"
|
758
|
+
>
|
759
|
+
<span class="status-body">
|
760
|
+
<span class="status-content">
|
761
|
+
<span class="entry-content">There are a surprising number of people on the 5am metro train, I barely got a seat</span>
|
762
|
+
</span>
|
763
|
+
<span class="meta entry-meta" data='{"place_id":"319ee7b36c9149da","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
764
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/25963955309">
|
765
|
+
<span class="published timestamp" data="{time:'Thu Sep 30 09:25:01 +0000 2010'}">2:25 AM Sep 30th</span></a>
|
766
|
+
<span>via <a href="http://mobile.twitter.com" rel="nofollow">Mobile Web</a></span>
|
767
|
+
from <a href="http://maps.google.com/maps?q=Arlington, VA" class="geocoded_google_link" target="_blank">Arlington, VA</a>
|
768
|
+
</span>
|
769
|
+
|
770
|
+
<ul class="meta-data clearfix">
|
771
|
+
</ul>
|
772
|
+
</span>
|
773
|
+
</li>
|
774
|
+
<li class="hentry u-sowersb status" id="status_25844941057"
|
775
|
+
>
|
776
|
+
<span class="status-body">
|
777
|
+
<span class="status-content">
|
778
|
+
<span class="entry-content">Had fun tonight at Nats park, great game, Dunn hits walk off home run. going to game tomorrow too, hopefully it's as good</span>
|
779
|
+
</span>
|
780
|
+
<span class="meta entry-meta" data='{}'>
|
781
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/25844941057">
|
782
|
+
<span class="published timestamp" data="{time:'Wed Sep 29 02:28:03 +0000 2010'}">7:28 PM Sep 28th</span></a>
|
783
|
+
<span>via <a href="http://seesmic.com/seesmic_mobile/android/" rel="nofollow">Seesmic for Android</a></span>
|
784
|
+
|
785
|
+
</span>
|
786
|
+
|
787
|
+
<ul class="meta-data clearfix">
|
788
|
+
</ul>
|
789
|
+
</span>
|
790
|
+
</li>
|
791
|
+
<li class="hentry u-sowersb status" id="status_25612780723"
|
792
|
+
>
|
793
|
+
<span class="status-body">
|
794
|
+
<span class="status-content">
|
795
|
+
<span class="entry-content">@<a class="tweet-url username" href="/DaveFreireich" rel="nofollow">DaveFreireich</a> Just noticed your msg today, shoot me an email at the address listed at <a href="http://www.coordinatecommons.com" class="tweet-url web" rel="nofollow" target="_blank">http://www.coordinatecommons.com</a></span>
|
796
|
+
</span>
|
797
|
+
<span class="meta entry-meta" data='{"place_id":"e1c2cd40f6ee7563","avatar_url":"http:\/\/a3.twimg.com\/profile_images\/1084691799\/Brent-sm_mini.jpg"}'>
|
798
|
+
<a class="entry-date" rel="bookmark" href="http://twitter.com/sowersb/status/25612780723">
|
799
|
+
<span class="published timestamp" data="{time:'Sun Sep 26 18:22:42 +0000 2010'}">11:22 AM Sep 26th</span></a>
|
800
|
+
<span>via web</span>
|
801
|
+
from <a href="http://maps.google.com/maps?q=Ballston - Virginia Square, Arlington" class="geocoded_google_link" target="_blank">Ballston - Virginia Square, Arlington</a>
|
802
|
+
<a href="http://twitter.com/DaveFreireich/status/25120392632">in reply to DaveFreireich</a></span>
|
803
|
+
|
804
|
+
<ul class="meta-data clearfix">
|
805
|
+
</ul>
|
806
|
+
</span>
|
807
|
+
</li>
|
808
|
+
</ol>
|
809
|
+
<div id="pagination">
|
810
|
+
<a href="/sowersb?max_id=29524461332&page=2&twttr=true" class="round more" id="more" rel="next">more</a> </div>
|
811
|
+
|
812
|
+
</div>
|
813
|
+
|
814
|
+
|
815
|
+
|
816
|
+
|
817
|
+
|
818
|
+
</div>
|
819
|
+
</td>
|
820
|
+
|
821
|
+
<td id="side_base" class="column round-right">
|
822
|
+
|
823
|
+
<div id="side">
|
824
|
+
|
825
|
+
<div id="profile" class="section profile-side">
|
826
|
+
<span class="section-links">
|
827
|
+
</span>
|
828
|
+
<address>
|
829
|
+
<ul class="about vcard entry-author">
|
830
|
+
|
831
|
+
|
832
|
+
|
833
|
+
<li><span class="label">Name</span> <span class="fn">Brent Sowers</span></li>
|
834
|
+
<li><span class="label">Location</span> <span class="adr">Arlington, VA</span></li>
|
835
|
+
<li><span class="label">Web</span> <a href="http://www.coordinatecommons.com" class="url" rel="me nofollow" target="_blank">http://www.coordi...</a></li>
|
836
|
+
<li id="bio"><span class="label">Bio</span> <span class="bio">Ruby on Rails software developer, Nationals fan, metalhead</span></li>
|
837
|
+
|
838
|
+
</ul>
|
839
|
+
</address>
|
840
|
+
|
841
|
+
|
842
|
+
|
843
|
+
<div class="stats">
|
844
|
+
<table>
|
845
|
+
<tr>
|
846
|
+
<td>
|
847
|
+
|
848
|
+
|
849
|
+
|
850
|
+
<a href="/sowersb/following" id="following_count_link" class="link-following_page" rel="me" title="See who sowersb is following">
|
851
|
+
<span id="following_count" class="stats_count numeric">65 </span>
|
852
|
+
<span class="label">Following</span>
|
853
|
+
</a>
|
854
|
+
|
855
|
+
|
856
|
+
</td>
|
857
|
+
<td>
|
858
|
+
|
859
|
+
<a href="/sowersb/followers" id="follower_count_link" class="link-followers_page" rel="me" title="See who's following sowersb">
|
860
|
+
<span id="follower_count" class="stats_count numeric">9 </span>
|
861
|
+
<span class="label">Followers</span>
|
862
|
+
</a>
|
863
|
+
|
864
|
+
</td>
|
865
|
+
<td>
|
866
|
+
|
867
|
+
<a href="/sowersb/lists/memberships" id="lists_count_link" class="link-lists_page" rel="me" title="See which lists sowersb is on">
|
868
|
+
<span id="lists_count" class="stats_count numeric">0 </span>
|
869
|
+
<span class="label">Listed</span>
|
870
|
+
</a>
|
871
|
+
|
872
|
+
</td>
|
873
|
+
</tr>
|
874
|
+
</table>
|
875
|
+
|
876
|
+
</div>
|
877
|
+
|
878
|
+
</div>
|
879
|
+
|
880
|
+
<ul id="primary_nav" class="sidebar-menu">
|
881
|
+
<li id="profile_tab"><a href="/sowersb" accesskey="u"><span id="update_count" class="stat_count">60</span><span>Tweets</span></a></li>
|
882
|
+
<li id="profile_favorites_tab"><a href="http://twitter.com/sowersb/favorites" accesskey="f"><span>Favorites</span></a></li>
|
883
|
+
</ul>
|
884
|
+
|
885
|
+
|
886
|
+
|
887
|
+
|
888
|
+
|
889
|
+
|
890
|
+
<hr/>
|
891
|
+
|
892
|
+
|
893
|
+
<div id="following">
|
894
|
+
|
895
|
+
<h2 class="sidebar-title" id="fm_menu"><span>Following</span></h2>
|
896
|
+
<div class="sidebar-menu">
|
897
|
+
<div id="following_list">
|
898
|
+
|
899
|
+
<span class="vcard">
|
900
|
+
<a href="/rocknrollhotel" class="url" hreflang="en" rel="contact" title="Rock and Roll Hotel "><img alt="Rock and Roll Hotel " class="photo fn" height="24" src="http://a0.twimg.com/profile_images/74244712/1024567165_m_mini.jpg" width="24" /></a> </span>
|
901
|
+
|
902
|
+
|
903
|
+
<span class="vcard">
|
904
|
+
<a href="/jimcaple" class="url" hreflang="en" rel="contact" title="Jim Caple"><img alt="Jim Caple" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/442523292/mymug_mini.jpg" width="24" /></a> </span>
|
905
|
+
|
906
|
+
|
907
|
+
<span class="vcard">
|
908
|
+
<a href="/redpalacedc" class="url" hreflang="en" rel="contact" title="Red Palace"><img alt="Red Palace" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/1123692781/176838335_mini.jpg" width="24" /></a> </span>
|
909
|
+
|
910
|
+
|
911
|
+
<span class="vcard">
|
912
|
+
<a href="/HikingUpward" class="url" hreflang="en" rel="contact" title="HikingUpward"><img alt="HikingUpward" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/57474282/hiking_upward_05_mini.jpg" width="24" /></a> </span>
|
913
|
+
|
914
|
+
|
915
|
+
<span class="vcard">
|
916
|
+
<a href="/FranklyMLS" class="url" hreflang="en" rel="contact" title="FranklyMLS.com"><img alt="FranklyMLS.com" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/588468020/iphone-icon_mini.png" width="24" /></a> </span>
|
917
|
+
|
918
|
+
|
919
|
+
<span class="vcard">
|
920
|
+
<a href="/Sevendust" class="url" hreflang="en" rel="contact" title="SEVENDUST"><img alt="SEVENDUST" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/641940641/IMG_08_mini.jpg" width="24" /></a> </span>
|
921
|
+
|
922
|
+
|
923
|
+
<span class="vcard">
|
924
|
+
<a href="/RubyNation" class="url" hreflang="en" rel="contact" title="RubyNation"><img alt="RubyNation" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/689896170/rnTwitter_mini.jpg" width="24" /></a> </span>
|
925
|
+
|
926
|
+
|
927
|
+
<span class="vcard">
|
928
|
+
<a href="/masnBen" class="url" hreflang="en" rel="contact" title="Ben Goessling onMASN"><img alt="Ben Goessling onMASN" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/742480800/twitter_icon_ben_mini.jpg" width="24" /></a> </span>
|
929
|
+
|
930
|
+
|
931
|
+
<span class="vcard">
|
932
|
+
<a href="/StateTheatreDC" class="url" hreflang="en" rel="contact" title="The State Theatre "><img alt="The State Theatre " class="photo fn" height="24" src="http://a3.twimg.com/profile_images/313610647/Logo_EQ_mini.jpg" width="24" /></a> </span>
|
933
|
+
|
934
|
+
|
935
|
+
<span class="vcard">
|
936
|
+
<a href="/MetalChris" class="url" hreflang="en" rel="contact" title="DC Heavy Metal"><img alt="DC Heavy Metal" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/117082053/756756487_006490ee3b_o_mini.jpg" width="24" /></a> </span>
|
937
|
+
|
938
|
+
|
939
|
+
<span class="vcard">
|
940
|
+
<a href="/NatsTownNews" class="url" hreflang="en" rel="contact" title="NatsTown"><img alt="NatsTown" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/521804202/WSH_2323_mini.gif" width="24" /></a> </span>
|
941
|
+
|
942
|
+
|
943
|
+
<span class="vcard">
|
944
|
+
<a href="/dcrug" class="url" hreflang="en" rel="contact" title="dcrug"><img alt="dcrug" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/62937240/DCRUG_mini.png" width="24" /></a> </span>
|
945
|
+
|
946
|
+
|
947
|
+
<span class="vcard">
|
948
|
+
<a href="/shitmydadsays" class="url" hreflang="en" rel="contact" title="Justin"><img alt="Justin" class="photo fn" height="24" src="http://a3.twimg.com/profile_images/362705903/dad_mini.jpg" width="24" /></a> </span>
|
949
|
+
|
950
|
+
|
951
|
+
<span class="vcard">
|
952
|
+
<a href="/rails" class="url" hreflang="en" rel="contact" title="Ruby on Rails"><img alt="Ruby on Rails" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/57028781/rails_mini.png" width="24" /></a> </span>
|
953
|
+
|
954
|
+
|
955
|
+
<span class="vcard">
|
956
|
+
<a href="/rorjobs" class="url" hreflang="en" rel="contact" title="Ruby On Rails Jobs"><img alt="Ruby On Rails Jobs" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/120823606/twitterlogo_mini.gif" width="24" /></a> </span>
|
957
|
+
|
958
|
+
|
959
|
+
<span class="vcard">
|
960
|
+
<a href="/frigejohnny" class="url" hreflang="en" rel="contact" title="john brown"><img alt="john brown" class="photo fn" height="24" src="http://s.twimg.com/a/1287420575/images/default_profile_4_mini.png" width="24" /></a> </span>
|
961
|
+
|
962
|
+
|
963
|
+
<span class="vcard">
|
964
|
+
<a href="/josemangin" class="url" hreflang="en" rel="contact" title="Jose Mangin"><img alt="Jose Mangin" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/1133973737/image_mini.jpg" width="24" /></a> </span>
|
965
|
+
|
966
|
+
|
967
|
+
<span class="vcard">
|
968
|
+
<a href="/TheKaylaRiley" class="url" hreflang="en" rel="contact" title="Kayla Riley"><img alt="Kayla Riley" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/1139289317/nyc_124_mini.jpg" width="24" /></a> </span>
|
969
|
+
|
970
|
+
|
971
|
+
<span class="vcard">
|
972
|
+
<a href="/cstammen35" class="url" hreflang="en" rel="contact" title="Craig Stammen"><img alt="Craig Stammen" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/728469549/Craig_Stammen_tall_away_mini.jpg" width="24" /></a> </span>
|
973
|
+
|
974
|
+
|
975
|
+
<span class="vcard">
|
976
|
+
<a href="/MLB" class="url" hreflang="en" rel="contact" title="MLB"><img alt="MLB" class="photo fn" height="24" src="http://a3.twimg.com/profile_images/1017578351/2010MLBlogo_mini.jpg" width="24" /></a> </span>
|
977
|
+
|
978
|
+
|
979
|
+
<span class="vcard">
|
980
|
+
<a href="/expressnightout" class="url" hreflang="en" rel="contact" title="ExpressNightOut.com"><img alt="ExpressNightOut.com" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/1018083828/express-e_new2_mini.jpg" width="24" /></a> </span>
|
981
|
+
|
982
|
+
|
983
|
+
<span class="vcard">
|
984
|
+
<a href="/rich_kilmer" class="url" hreflang="en" rel="contact" title="Rich Kilmer"><img alt="Rich Kilmer" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/64930806/rich_mini.png" width="24" /></a> </span>
|
985
|
+
|
986
|
+
|
987
|
+
<span class="vcard">
|
988
|
+
<a href="/ezmobius" class="url" hreflang="en" rel="contact" title="Ezra Zygmuntowicz"><img alt="Ezra Zygmuntowicz" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/50804322/Picture_17_mini.png" width="24" /></a> </span>
|
989
|
+
|
990
|
+
|
991
|
+
<span class="vcard">
|
992
|
+
<a href="/NatsTix" class="url" hreflang="en" rel="contact" title="NatsTixSales: Nicole"><img alt="NatsTixSales: Nicole" class="photo fn" height="24" src="http://a3.twimg.com/profile_images/618470775/NationalsScriptLogoSq_mini.jpg" width="24" /></a> </span>
|
993
|
+
|
994
|
+
|
995
|
+
<span class="vcard">
|
996
|
+
<a href="/hoptoadapp" class="url" hreflang="en" rel="contact" title="hoptoadapp"><img alt="hoptoadapp" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/112228446/hoptoad-fluid_mini.png" width="24" /></a> </span>
|
997
|
+
|
998
|
+
|
999
|
+
<span class="vcard">
|
1000
|
+
<a href="/BlackCatDC" class="url" hreflang="en" rel="contact" title="Black Cat"><img alt="Black Cat" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/400194629/l_91bbde43bb784d38ad9f6e20ca1633cf_mini.jpg" width="24" /></a> </span>
|
1001
|
+
|
1002
|
+
|
1003
|
+
<span class="vcard">
|
1004
|
+
<a href="/jaysonst" class="url" hreflang="en" rel="contact" title="Jayson Stark"><img alt="Jayson Stark" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/102155350/jaypic180_mini.png" width="24" /></a> </span>
|
1005
|
+
|
1006
|
+
|
1007
|
+
<span class="vcard">
|
1008
|
+
<a href="/OldHossRadbourn" class="url" hreflang="en" rel="contact" title="Old Hoss Radbourn"><img alt="Old Hoss Radbourn" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/272006869/Radbourne_charles_1_mini.jpg" width="24" /></a> </span>
|
1009
|
+
|
1010
|
+
|
1011
|
+
<span class="vcard">
|
1012
|
+
<a href="/Rdibs49" class="url" hreflang="en" rel="contact" title="Rob Dibble"><img alt="Rob Dibble" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/1154868904/image_mini.jpg" width="24" /></a> </span>
|
1013
|
+
|
1014
|
+
|
1015
|
+
<span class="vcard">
|
1016
|
+
<a href="/FakeRobDibble" class="url" hreflang="en" rel="contact" title="Fake Rob Dibble"><img alt="Fake Rob Dibble" class="photo fn" height="24" src="http://a2.twimg.com/profile_images/1079161490/Dibz_mini.jpg" width="24" /></a> </span>
|
1017
|
+
|
1018
|
+
|
1019
|
+
<span class="vcard">
|
1020
|
+
<a href="/dhh" class="url" hreflang="en" rel="contact" title="DHH"><img alt="DHH" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/67881828/headshot64_mini.jpg" width="24" /></a> </span>
|
1021
|
+
|
1022
|
+
|
1023
|
+
<span class="vcard">
|
1024
|
+
<a href="/rbates" class="url" hreflang="en" rel="contact" title="Ryan Bates"><img alt="Ryan Bates" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/52189024/ryan_bates_cropped_mini.jpg" width="24" /></a> </span>
|
1025
|
+
|
1026
|
+
|
1027
|
+
<span class="vcard">
|
1028
|
+
<a href="/railscasts" class="url" hreflang="en" rel="contact" title="Railscasts"><img alt="Railscasts" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/83693421/logo_mini.png" width="24" /></a> </span>
|
1029
|
+
|
1030
|
+
|
1031
|
+
<span class="vcard">
|
1032
|
+
<a href="/pjb3" class="url" hreflang="en" rel="contact" title="Paul Barry"><img alt="Paul Barry" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/1029286697/pjb3_mini.png" width="24" /></a> </span>
|
1033
|
+
|
1034
|
+
|
1035
|
+
<span class="vcard">
|
1036
|
+
<a href="/mirRoRplacement" class="url" hreflang="en" rel="contact" title="mirRoR Placement"><img alt="mirRoR Placement" class="photo fn" height="24" src="http://a0.twimg.com/profile_images/659088772/mirRoR_twitter_icon_mini.jpg" width="24" /></a> </span>
|
1037
|
+
|
1038
|
+
|
1039
|
+
<span class="vcard">
|
1040
|
+
<a href="/baseball_ref" class="url" hreflang="en" rel="contact" title="Baseball Reference"><img alt="Baseball Reference" class="photo fn" height="24" src="http://a1.twimg.com/profile_images/380680877/baseball_ref_twitter_mini.png" width="24" /></a> </span>
|
1041
|
+
|
1042
|
+
|
1043
|
+
</div>
|
1044
|
+
<div id="friends_view_all">
|
1045
|
+
<a href="/sowersb/following" rel="me">View all…</a>
|
1046
|
+
</div>
|
1047
|
+
|
1048
|
+
</div>
|
1049
|
+
|
1050
|
+
<hr/>
|
1051
|
+
</div>
|
1052
|
+
|
1053
|
+
|
1054
|
+
|
1055
|
+
|
1056
|
+
|
1057
|
+
<div id="rssfeed">
|
1058
|
+
<a href="/statuses/user_timeline/170030823.rss" class="xref rss profile-rss" rel="alternate" type="application/rss+xml">RSS feed of sowersb's tweets</a>
|
1059
|
+
<a href="/favorites/170030823.rss" class="xref rss favorites-rss" rel="alternate" type="application/rss+xml">RSS feed of sowersb's favorites</a>
|
1060
|
+
</div>
|
1061
|
+
|
1062
|
+
|
1063
|
+
|
1064
|
+
|
1065
|
+
</div>
|
1066
|
+
</td>
|
1067
|
+
|
1068
|
+
</tr>
|
1069
|
+
</tbody>
|
1070
|
+
</table>
|
1071
|
+
|
1072
|
+
|
1073
|
+
|
1074
|
+
<div id="footer" class="round">
|
1075
|
+
<h3 class="offscreen">Footer</h3>
|
1076
|
+
|
1077
|
+
|
1078
|
+
<ul class="footer-nav">
|
1079
|
+
<li class="first">© 2010 Twitter</li>
|
1080
|
+
<li><a href="/about">About Us</a></li>
|
1081
|
+
<li><a href="/about/contact">Contact</a></li>
|
1082
|
+
<li><a href="http://blog.twitter.com">Blog</a></li>
|
1083
|
+
<li><a href="http://status.twitter.com">Status</a></li>
|
1084
|
+
<li><a href="/about/resources">Resources</a></li>
|
1085
|
+
<li><a href="http://dev.twitter.com/">API</a></li>
|
1086
|
+
<li><a href="http://business.twitter.com/twitter101">Business</a></li>
|
1087
|
+
<li><a href="http://support.twitter.com">Help</a></li>
|
1088
|
+
<li><a href="/jobs">Jobs</a></li>
|
1089
|
+
<li><a href="/tos">Terms</a></li>
|
1090
|
+
<li><a href="/privacy">Privacy</a></li>
|
1091
|
+
</ul>
|
1092
|
+
</div>
|
1093
|
+
|
1094
|
+
|
1095
|
+
|
1096
|
+
<hr />
|
1097
|
+
|
1098
|
+
</div>
|
1099
|
+
|
1100
|
+
|
1101
|
+
|
1102
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js" type="text/javascript"></script>
|
1103
|
+
<script src="http://a2.twimg.com/a/1288981003/javascripts/twitter.js?1288982890" type="text/javascript"></script>
|
1104
|
+
<script src="http://a0.twimg.com/a/1288981003/javascripts/lib/jquery.tipsy.min.js?1288982890" type="text/javascript"></script>
|
1105
|
+
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
|
1106
|
+
<script src="http://a0.twimg.com/a/1288981003/javascripts/lib/gears_init.js?1288982890" type="text/javascript"></script>
|
1107
|
+
<script src="http://a1.twimg.com/a/1288981003/javascripts/lib/mustache.js?1288982890" type="text/javascript"></script>
|
1108
|
+
<script src="http://a2.twimg.com/a/1288981003/javascripts/geov1.js?1288982890" type="text/javascript"></script>
|
1109
|
+
<script src="http://a0.twimg.com/a/1288981003/javascripts/api.js?1288982890" type="text/javascript"></script>
|
1110
|
+
<script type="text/javascript">
|
1111
|
+
//<![CDATA[
|
1112
|
+
$.cookie('tz_offset_sec', (-1 * (new Date()).getTimezoneOffset())*60);
|
1113
|
+
//]]>
|
1114
|
+
</script>
|
1115
|
+
<script src="http://a1.twimg.com/a/1288981003/javascripts/lib/mustache.js?1288982890" type="text/javascript"></script>
|
1116
|
+
<script src="http://a2.twimg.com/a/1288981003/javascripts/dismissable.js?1288982890" type="text/javascript"></script>
|
1117
|
+
|
1118
|
+
|
1119
|
+
<script type="text/javascript">
|
1120
|
+
//<![CDATA[
|
1121
|
+
page.user_screenname = 'sowersb';
|
1122
|
+
page.user_fullname = 'Brent Sowers';
|
1123
|
+
page.controller_name = 'AccountController';
|
1124
|
+
page.action_name = 'profile';
|
1125
|
+
twttr.form_authenticity_token = '1e78388a93644bf413352a320a1a766378ba4cea';
|
1126
|
+
$.ajaxSetup({ data: { authenticity_token: '1e78388a93644bf413352a320a1a766378ba4cea' } });
|
1127
|
+
|
1128
|
+
// FIXME: Reconcile with the kinds on the Status model.
|
1129
|
+
twttr.statusKinds = {
|
1130
|
+
UPDATE: 1,
|
1131
|
+
SHARE: 2
|
1132
|
+
};
|
1133
|
+
twttr.ListPerUserLimit = 20;
|
1134
|
+
|
1135
|
+
|
1136
|
+
|
1137
|
+
|
1138
|
+
//]]>
|
1139
|
+
</script>
|
1140
|
+
<script type="text/javascript">
|
1141
|
+
//<![CDATA[
|
1142
|
+
|
1143
|
+
$( function () {
|
1144
|
+
|
1145
|
+
$("#sms_codes_link").hoverTip("#sms_codes");
|
1146
|
+
initializePage();
|
1147
|
+
|
1148
|
+
|
1149
|
+
|
1150
|
+
if (twttr.geo !== undefined) {
|
1151
|
+
twttr.geo.options.show_place_details_in_map = true;
|
1152
|
+
}
|
1153
|
+
|
1154
|
+
(function(){function b(){var c=location.href.split("#!")[1];if(c){window.location.hash = "";window.location.pathname = c.replace(/^([^/])/,"/$1");}else return true}var a="onhashchange"in window;if(!a&&window.setAttribute){window.setAttribute("onhashchange","return;");a=typeof window.onhashchange==="function"}if(a)$(window).bind("hashchange",b);else{var d=function(){b()&&setTimeout(d,250)};setTimeout(d,250)}}());
|
1155
|
+
$('#signin_menu').isSigninMenu();
|
1156
|
+
|
1157
|
+
});
|
1158
|
+
|
1159
|
+
//]]>
|
1160
|
+
</script>
|
1161
|
+
|
1162
|
+
<!-- BEGIN google analytics -->
|
1163
|
+
|
1164
|
+
<script type="text/javascript">
|
1165
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
1166
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
1167
|
+
</script>
|
1168
|
+
|
1169
|
+
<script type="text/javascript">
|
1170
|
+
|
1171
|
+
try {
|
1172
|
+
var pageTracker = _gat._getTracker("UA-30775-6");
|
1173
|
+
pageTracker._setDomainName("twitter.com");
|
1174
|
+
pageTracker._setVar('Not Logged In');
|
1175
|
+
pageTracker._setVar('lang: en');
|
1176
|
+
pageTracker._initData();
|
1177
|
+
|
1178
|
+
pageTracker._trackPageview('/profile/not_logged_in/sowersb');
|
1179
|
+
} catch(err) { }
|
1180
|
+
|
1181
|
+
</script>
|
1182
|
+
|
1183
|
+
<!-- END google analytics -->
|
1184
|
+
|
1185
|
+
|
1186
|
+
|
1187
|
+
|
1188
|
+
<div id="notifications"></div>
|
1189
|
+
|
1190
|
+
|
1191
|
+
|
1192
|
+
|
1193
|
+
|
1194
|
+
|
1195
|
+
</body>
|
1196
|
+
|
1197
|
+
</html>
|