twitterscour 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|