rst 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -22,6 +22,8 @@ Current Functionality
22
22
  * Read rstat.us world statuses without being logged in.
23
23
  * Read a particular user's statuses without being logged in.
24
24
  * Search for users whose username contains a pattern.
25
+ * Allow changing the base URI to something other than "https://rstat.us"
26
+ * Have an option to get the full backtrace if there is an error
25
27
 
26
28
  Future functionality
27
29
  --------------------
data/bin/rst CHANGED
@@ -21,6 +21,16 @@ Options:"
21
21
  options[:num] = n.to_i
22
22
  end
23
23
 
24
+ options[:debug] = false
25
+ opts.on("-t", "--trace", "Show backtrace for errors") do
26
+ options[:debug] = true
27
+ end
28
+
29
+ options[:base_uri] = "https://rstat.us"
30
+ opts.on("-u URI", "--uri", "Use a different base URI (default: https://rstat.us)") do |u|
31
+ options[:base_uri] = u
32
+ end
33
+
24
34
  opts.on_tail("-h", "--help", "Show this message") do
25
35
  puts opts
26
36
  exit
@@ -37,5 +47,5 @@ rst_parser.parse!
37
47
  if ARGV.empty?
38
48
  puts rst_parser.help
39
49
  else
40
- Rst::CLI.run(options, ARGV)
50
+ Rst::CLI.new(Rst::Client.new(options[:base_uri])).run(options, ARGV)
41
51
  end
@@ -1,6 +1,8 @@
1
1
  module Rst
2
- module CLI
3
- extend self
2
+ class CLI
3
+ def initialize(client)
4
+ @client = client
5
+ end
4
6
 
5
7
  def run(options, args = [])
6
8
  command = args[0]
@@ -10,7 +12,14 @@ module Rst
10
12
 
11
13
  puts results.join("\n\n")
12
14
  rescue Exception => e
13
- puts e.message
15
+ puts "ERROR: #{e.message}"
16
+
17
+ if options[:debug]
18
+ puts e.backtrace.join("\n")
19
+ else
20
+ puts "Run with --trace for the full backtrace."
21
+ end
22
+
14
23
  exit 1
15
24
  end
16
25
 
@@ -27,7 +36,7 @@ module Rst
27
36
  def users_search(params = {}, args = [])
28
37
  search_pattern = args[0]
29
38
  raise "Username search pattern is required." unless search_pattern
30
- users = Rst::Client.users_search(:pattern => search_pattern)
39
+ users = @client.users_search(:pattern => search_pattern)
31
40
  if users.empty?
32
41
  ["No users that match."]
33
42
  else
@@ -44,7 +53,7 @@ module Rst
44
53
 
45
54
  while statuses.size < num do
46
55
  page += 1
47
- messages = Rst::Client.send(which, params.merge(:page => page))
56
+ messages = @client.send(which, params.merge(:page => page))
48
57
 
49
58
  break if messages.empty?
50
59
 
@@ -2,8 +2,12 @@ require 'nokogiri'
2
2
  require 'typhoeus'
3
3
 
4
4
  module Rst
5
- module Client
6
- extend self
5
+ class Client
6
+ attr_reader :base_uri
7
+
8
+ def initialize(base_uri = "https://rstat.us")
9
+ @base_uri = base_uri
10
+ end
7
11
 
8
12
  def messages_all(params = {:page => 1})
9
13
  messages_all_path = find_a_in(root_response, :rel => "messages-all")
@@ -76,7 +80,7 @@ module Rst
76
80
  raise "no rel specified" unless params[:rel]
77
81
 
78
82
  link = html.xpath(
79
- ".//a[contains(@rel, '#{params[:rel]}')]"
83
+ ".//a[contains(concat(' ', normalize-space(@rel), ' '), ' #{params[:rel]} ')]"
80
84
  ).first["href"]
81
85
  end
82
86
 
@@ -91,10 +95,6 @@ module Rst
91
95
  (URI(params[:base]) + URI(params[:relative])).to_s
92
96
  end
93
97
 
94
- def base_uri
95
- "http://rstat.us"
96
- end
97
-
98
98
  def get_body(uri)
99
99
  Nokogiri::HTML.parse(
100
100
  Typhoeus::Request.get(uri).body
@@ -22,7 +22,7 @@ module Rst
22
22
  :username => li.css("span.user-text").text,
23
23
  :full_name => li.css("span.user-name").text,
24
24
  :description => li.css("span.description").text,
25
- :path => li.xpath(".//a[contains(@rel, 'user')]/@href").text
25
+ :path => li.xpath(".//a[contains(concat(' ', normalize-space(@rel), ' '), ' user ')]/@href").text
26
26
  )
27
27
  end
28
28
 
@@ -1,3 +1,3 @@
1
1
  module Rst
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -5,29 +5,30 @@ require 'rst'
5
5
 
6
6
  describe "Rst::CLI" do
7
7
  before do
8
- @cli = Rst::CLI
8
+ @stub_client = stub
9
+ @cli = Rst::CLI.new(@stub_client)
9
10
  end
10
11
 
11
12
  describe "world" do
12
13
  it "gets the world updates" do
13
14
  page_of_updates = 20.times.map { "Hi" }
14
- Rst::Client.expects(:messages_all).once.returns(page_of_updates)
15
+ @stub_client.expects(:messages_all).once.returns(page_of_updates)
15
16
 
16
17
  @cli.world.size.must_equal(20)
17
18
  end
18
19
 
19
20
  it "can specify a number of world updates to get" do
20
- Rst::Client.stubs(:messages_all).returns(["Hi", "Bye", "Yo"])
21
+ @stub_client.stubs(:messages_all).returns(["Hi", "Bye", "Yo"])
21
22
  @cli.world(:num => 2).size.must_equal(2)
22
23
  end
23
24
 
24
25
  it "gets as many updates as it can but stops if there arent more" do
25
- Rst::Client.stubs(:messages_all).returns(["Hi", "Bye", "Yo"], [])
26
+ @stub_client.stubs(:messages_all).returns(["Hi", "Bye", "Yo"], [])
26
27
  @cli.world(:num => 5).size.must_equal(3)
27
28
  end
28
29
 
29
30
  it "should have Rst::Statuses" do
30
- Rst::Client.stubs(:messages_all).returns([
31
+ @stub_client.stubs(:messages_all).returns([
31
32
  Rst::Status.new(:username => "ueoa", :text => "foo!")
32
33
  ])
33
34
  @cli.world(:num => 1).first.to_s.must_equal("ueoa: foo!")
@@ -42,7 +43,7 @@ describe "Rst::CLI" do
42
43
  it "gets one user's updates" do
43
44
  page_of_updates = 20.times.map { "Hi" }
44
45
 
45
- Rst::Client.expects(:messages_user).
46
+ @stub_client.expects(:messages_user).
46
47
  once.
47
48
  with({:username => username, :page => 1}).
48
49
  returns(page_of_updates)
@@ -51,7 +52,7 @@ describe "Rst::CLI" do
51
52
  end
52
53
 
53
54
  it "can specify a number of one user's updates to get" do
54
- Rst::Client.stubs(:messages_user).returns(["Hi", "Bye", "Yo"])
55
+ @stub_client.stubs(:messages_user).returns(["Hi", "Bye", "Yo"])
55
56
  @cli.user({:num => 2}, username).size.must_equal(2)
56
57
  end
57
58
 
@@ -65,7 +66,7 @@ describe "Rst::CLI" do
65
66
  it "searches for that pattern" do
66
67
  users = ["one", "two"]
67
68
 
68
- Rst::Client.expects(:users_search).
69
+ @stub_client.expects(:users_search).
69
70
  once.
70
71
  with({:pattern => "o"}).
71
72
  returns(users)
@@ -2,11 +2,32 @@ require 'minitest/autorun'
2
2
  require_relative 'vcr_setup'
3
3
 
4
4
  describe "client" do
5
+ before do
6
+ @client = Rst::Client.new
7
+ end
8
+
9
+ describe "base_uri" do
10
+ it "is https://rstat.us by default" do
11
+ @client.base_uri.must_equal "https://rstat.us"
12
+ end
13
+
14
+ it "can be changed to a different URI" do
15
+ uri = "http://example.com"
16
+ Rst::Client.new(uri).base_uri.must_equal uri
17
+ end
18
+ end
19
+
5
20
  describe "messages_all" do
6
21
  describe "successful requests" do
7
- it "gets the root URL, follows the a rel=messages_all, gets updates" do
22
+ it "gets the root URL, follows the a rel=messages-all, gets updates" do
8
23
  VCR.use_cassette("successful_messages_all") do
9
- Rst::Client.messages_all.size.must_equal 20
24
+ @client.messages_all.size.must_equal 20
25
+ end
26
+ end
27
+
28
+ it "can find a rel=messages-all with other rels, not match false substrings" do
29
+ VCR.use_cassette("successful_messages_all_multiple_rels") do
30
+ @client.messages_all.size.must_equal 20
10
31
  end
11
32
  end
12
33
  end
@@ -14,8 +35,8 @@ describe "client" do
14
35
  describe "multiple pages" do
15
36
  it "follows the next links to get the page number requested" do
16
37
  VCR.use_cassette("successful_messages_all_page_2") do
17
- page_1 = Rst::Client.messages_all
18
- page_2 = Rst::Client.messages_all(:page => 2)
38
+ page_1 = @client.messages_all
39
+ page_2 = @client.messages_all(:page => 2)
19
40
 
20
41
  page_1.map(&:text).wont_equal page_2.map(&:text)
21
42
  end
@@ -27,7 +48,7 @@ describe "client" do
27
48
  describe "successful requests" do
28
49
  it "looks up the user and gets their updates" do
29
50
  VCR.use_cassette("successful_messages_user") do
30
- Rst::Client.messages_user(
51
+ @client.messages_user(
31
52
  :username => "carols10cents"
32
53
  ).size.must_equal 20
33
54
  end
@@ -38,7 +59,7 @@ describe "client" do
38
59
  describe "users_search" do
39
60
  it "finds users with the given pattern" do
40
61
  VCR.use_cassette("users_search_with_results") do
41
- Rst::Client.users_search(
62
+ @client.users_search(
42
63
  :pattern => "ca"
43
64
  ).size.must_equal 20
44
65
  end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://rstat.us
5
+ uri: https://rstat.us
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ""
@@ -391,7 +391,7 @@ http_interactions:
391
391
  recorded_at: Sun, 03 Jun 2012 15:21:12 GMT
392
392
  - request:
393
393
  method: get
394
- uri: http://rstat.us/updates
394
+ uri: https://rstat.us/updates
395
395
  body:
396
396
  encoding: US-ASCII
397
397
  string: ""
@@ -0,0 +1,997 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rstat.us
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers: {}
10
+
11
+ response:
12
+ status:
13
+ code: 200
14
+ message: "OK "
15
+ headers:
16
+ Server:
17
+ - nginx
18
+ Date:
19
+ - Sun, 03 Jun 2012 15:21:08 GMT
20
+ Content-Type:
21
+ - text/html; charset=utf-8
22
+ Transfer-Encoding:
23
+ - chunked
24
+ Connection:
25
+ - keep-alive
26
+ X-Ua-Compatible:
27
+ - IE=Edge,chrome=1
28
+ Etag:
29
+ - "\"9494d1201a8cdf2e3610a03952ce2677\""
30
+ Cache-Control:
31
+ - max-age=0, private, must-revalidate
32
+ X-Runtime:
33
+ - "0.885035"
34
+ X-Rack-Cache:
35
+ - miss
36
+ Set-Cookie:
37
+ - _rstat.us_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWY3OWFlMDlkY2RiYjA2MDI1NGNlMWVlMDkwNGNiZGUzBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMVlFbEMwQlozcXE1ZXhoWjFVeVpXVXNIbTBjOVA1UkFMVitWK216RmdVdjQ9BjsARg%3D%3D--dbb5b2682f34c441bee28e69f999157e5b1b177a; path=/; expires=Sun, 10-Jun-2012 15:21:08 GMT; HttpOnly
38
+ X-Varnish:
39
+ - "333407541"
40
+ Age:
41
+ - "0"
42
+ Via:
43
+ - 1.1 varnish
44
+ Content-Encoding:
45
+ - gzip
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: |
49
+ <!DOCTYPE html>
50
+ <html class='no-js' lang='en'>
51
+ <head><script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
52
+ <meta charset='utf-8'>
53
+ <title>rstat.us</title>
54
+ <script src="/assets/application-85f9725f39cb94c87fedaf584d19c2b4.js" type="text/javascript"></script>
55
+ <link href="/assets/application-25f42916ee009ac80dfe4dc5aea6c47e.css" media="screen" rel="stylesheet" type="text/css" />
56
+ <meta content="authenticity_token" name="csrf-param" />
57
+ <meta content="YElC0BZ3qq5exhZ1UyZWUsHm0c9P5RALV+V+mzFgUv4=" name="csrf-token" />
58
+ <link href='images/mobile_icons/apple-touch-icon_114.png' rel='apple-touch-icon-precomposed' sizes='114x114'>
59
+ <link href='images/mobile_icons/apple-touch-icon_72.png' rel='apple-touch-icon-precomposed' sizes='72x72'>
60
+ <link href='images/mobile_icons/apple-touch-icon.png' rel='apple-touch-icon-precomposed'>
61
+
62
+ <script>
63
+ //<![CDATA[
64
+ var _gaq = _gaq || [];
65
+ _gaq.push(['_setAccount', 'UA-22030550-1']);
66
+ _gaq.push(['_trackPageview']);
67
+
68
+ (function() {
69
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
70
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
71
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
72
+ })();
73
+ //]]>
74
+ </script>
75
+
76
+ </head>
77
+
78
+ <body id='home'>
79
+ <div id='header-wrap'>
80
+ <div id='header'>
81
+ <div id='logo'>
82
+ <a href='/'>
83
+ <h1>
84
+ rstat.us
85
+ </h1>
86
+ </a>
87
+ </div>
88
+ <ul class='menu' id='main'>
89
+ <li class='home active'>
90
+ <a href='/' rel='index-not-messages-all'>Home</a>
91
+ </li>
92
+ <li class='updates '>
93
+ <a href='/updates' rel='messages-all something'>Updates</a>
94
+ </li>
95
+ <li class='search '>
96
+ <a href='/search'>Search</a>
97
+ </li>
98
+ <li class='users '>
99
+ <a href='/users'>Users</a>
100
+ </li>
101
+ </ul>
102
+
103
+
104
+ </div>
105
+ </div>
106
+
107
+
108
+ <div id='flash'>
109
+ </div>
110
+
111
+ <div id='welcome'>
112
+ <div class='wrap'>
113
+ <div id='intro'>
114
+ <h1>Hello.</h1>
115
+ <h3>Welcome to rstat.us</h3>
116
+ </div>
117
+ <div id='signup'>
118
+ <h3>Sign in with</h3>
119
+ <div class='twitter option'>
120
+ <a class='button' href='/auth/twitter'>
121
+ <span class='icon twitter'></span>
122
+ Twitter
123
+ </a>
124
+ </div>
125
+ <div class='username option'>
126
+ <a class='button' href='/login'>
127
+ <span class='icon comment'></span>
128
+ Username
129
+ </a>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ <div id='pitch'>
135
+ <div class='wrap'>
136
+ <a class='col' href='/login' id='col-1'>
137
+ <div class='content'>
138
+ <h3>
139
+ Sign Up
140
+ </h3>
141
+ with Twitter or create a new account
142
+ </div>
143
+ <img alt="Slide1" src="/assets/slide1-5dd1b6b8ec93eb6f9d15b0d84f883231.png" />
144
+ </a>
145
+ <div class='col' id='col-2'>
146
+ <div class='content'>
147
+ <h3>
148
+ Connect
149
+ </h3>
150
+ to your friends and family around the world
151
+ </div>
152
+ <img alt="Slide2" src="/assets/slide2-1ab49b82188ee4ddfee0e94c875e0ec9.png" />
153
+ </div>
154
+ <div class='col last-col' id='col-3'>
155
+ <div class='content'>
156
+ <h3>
157
+ Share
158
+ </h3>
159
+ your thoughts in 140 characters or less
160
+ </div>
161
+ <img alt="Slide3" src="/assets/slide3-cfa4a836c6cf4b2ca6eee8c2dcc8f698.png" />
162
+ </div>
163
+ </div>
164
+ </div>
165
+ <div id='page'>
166
+ <div id='content-wrap'>
167
+ <div id='top'>
168
+ <h3>Recent updates</h3>
169
+ <p>What people are talking about right now</p>
170
+ </div>
171
+ <div id='content'>
172
+ <div class='updates'>
173
+ <div id='messages'>
174
+ <ul class='updates' id=''>
175
+ <li class='hentry message update' data-id='4fcb8067de8baf00010108a3' data-name='alpacaherder' id='update-4fcb8067de8baf00010108a3'>
176
+ <div class='author vcard'>
177
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>
178
+ <div class="avatar"><a href="http://identi.ca/user/16938"><img alt="avatar" class="photo user-image" src="http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg" /></a></div>
179
+ </a>
180
+ <span class='fn'>
181
+ <a class='url' href='http://identi.ca/user/16938'>
182
+ Stephen Michael Kellat
183
+ (<span class="nickname user-text">alpacaherder</span>)
184
+ </a>
185
+ </span>
186
+ </div>
187
+ <div class='entry-content'>
188
+ <span class='message-text'>
189
+ Hebrews 12:1-3 now
190
+ </span>
191
+ </div>
192
+ <div class='info'>
193
+ <time class="published" datetime="2012-06-03T15:18:57Z" pubdate="pubdate"><a class="timeago" href="http://identi.ca/notice/94266528" rel="bookmark message" title="2012-06-03T15:18:57Z"><span class="date-time">2012-06-03T15:18:57</span></a></time>
194
+ </div>
195
+ <div class='actions'>
196
+ </div>
197
+ </li>
198
+ <li class='hentry message update' data-id='4fcb7f30de8baf0001010763' data-name='jpope' id='update-4fcb7f30de8baf0001010763'>
199
+ <div class='author vcard'>
200
+ <a class='url' href='http://micro.jpope.org/user/1' rel='user'>
201
+ <div class="avatar"><a href="http://micro.jpope.org/user/1"><img alt="avatar" class="photo user-image" src="https://secure.gravatar.com/avatar.php?gravatar_id=e22211b8862bd536337a38d8ca1ef443&amp;default=http%3A%2F%2Fmicro.jpope.org%2Ftheme%2Fjpope%2Fdefault-avatar-profile.png&amp;size=96" /></a></div>
202
+ </a>
203
+ <span class='fn'>
204
+ <a class='url' href='http://micro.jpope.org/user/1'>
205
+ jpope
206
+ (<span class="nickname user-text">jpope</span>)
207
+ </a>
208
+ </span>
209
+ </div>
210
+ <div class='entry-content'>
211
+ <span class='message-text'>
212
+ Compiling a video out of 4531 radar images. Should be fun. :)
213
+ </span>
214
+ </div>
215
+ <div class='info'>
216
+ <time class="published" datetime="2012-06-03T15:13:34Z" pubdate="pubdate"><a class="timeago" href="http://micro.jpope.org/notice/336574" rel="bookmark message" title="2012-06-03T15:13:34Z"><span class="date-time">2012-06-03T15:13:34</span></a></time>
217
+ </div>
218
+ <div class='actions'>
219
+ </div>
220
+ </li>
221
+ <li class='hentry message update' data-id='4fcb7ee0de8baf000101071b' data-name='alpacaherder' id='update-4fcb7ee0de8baf000101071b'>
222
+ <div class='author vcard'>
223
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>
224
+ <div class="avatar"><a href="http://identi.ca/user/16938"><img alt="avatar" class="photo user-image" src="http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg" /></a></div>
225
+ </a>
226
+ <span class='fn'>
227
+ <a class='url' href='http://identi.ca/user/16938'>
228
+ Stephen Michael Kellat
229
+ (<span class="nickname user-text">alpacaherder</span>)
230
+ </a>
231
+ </span>
232
+ </div>
233
+ <div class='entry-content'>
234
+ <span class='message-text'>
235
+ Phillipians 3:12-16 now...
236
+ </span>
237
+ </div>
238
+ <div class='info'>
239
+ <time class="published" datetime="2012-06-03T15:12:31Z" pubdate="pubdate"><a class="timeago" href="http://identi.ca/notice/94266438" rel="bookmark message" title="2012-06-03T15:12:31Z"><span class="date-time">2012-06-03T15:12:31</span></a></time>
240
+ </div>
241
+ <div class='actions'>
242
+ </div>
243
+ </li>
244
+ <li class='hentry message update' data-id='4fcb7e9ade8baf00010106b4' data-name='alpacaherder' id='update-4fcb7e9ade8baf00010106b4'>
245
+ <div class='author vcard'>
246
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>
247
+ <div class="avatar"><a href="http://identi.ca/user/16938"><img alt="avatar" class="photo user-image" src="http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg" /></a></div>
248
+ </a>
249
+ <span class='fn'>
250
+ <a class='url' href='http://identi.ca/user/16938'>
251
+ Stephen Michael Kellat
252
+ (<span class="nickname user-text">alpacaherder</span>)
253
+ </a>
254
+ </span>
255
+ </div>
256
+ <div class='entry-content'>
257
+ <span class='message-text'>
258
+ Today, we talk about retirement as mentioned in Numbers. Except for 1 reference, graduation &amp; retirement are concepts foreign to the Bible.
259
+ </span>
260
+ </div>
261
+ <div class='info'>
262
+ <time class="published" datetime="2012-06-03T15:11:20Z" pubdate="pubdate"><a class="timeago" href="http://identi.ca/notice/94266421" rel="bookmark message" title="2012-06-03T15:11:20Z"><span class="date-time">2012-06-03T15:11:20</span></a></time>
263
+ </div>
264
+ <div class='actions'>
265
+ </div>
266
+ </li>
267
+ <li class='hentry message update' data-id='4fcb7e84de8baf000101069b' data-name='parlementum' id='update-4fcb7e84de8baf000101069b'>
268
+ <div class='author vcard'>
269
+ <a class='url' href='http://parlementum.net/user/3785' rel='user'>
270
+ <div class="avatar"><a href="http://parlementum.net/user/3785"><img alt="avatar" class="photo user-image" src="http://parlementum.net/avatar/3785-96-20120119032323.jpeg" /></a></div>
271
+ </a>
272
+ <span class='fn'>
273
+ <a class='url' href='http://parlementum.net/user/3785'>
274
+ Charles Roth
275
+ (<span class="nickname user-text">parlementum</span>)
276
+ </a>
277
+ </span>
278
+ </div>
279
+ <div class='entry-content'>
280
+ <span class='message-text'>
281
+ The exuberant variety of little boats is as remarkable as the Royal Barge itself. <a href='/search?q=%23Jubilee'>#Jubilee</a>
282
+ </span>
283
+ </div>
284
+ <div class='info'>
285
+ <time class="published" datetime="2012-06-03T15:10:41Z" pubdate="pubdate"><a class="timeago" href="http://parlementum.net/notice/2805967" rel="bookmark message" title="2012-06-03T15:10:41Z"><span class="date-time">2012-06-03T15:10:41</span></a></time>
286
+ </div>
287
+ <div class='actions'>
288
+ </div>
289
+ </li>
290
+ <li class='hentry message update' data-id='4fcb7e11de8baf00010105d3' data-name='alpacaherder' id='update-4fcb7e11de8baf00010105d3'>
291
+ <div class='author vcard'>
292
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>
293
+ <div class="avatar"><a href="http://identi.ca/user/16938"><img alt="avatar" class="photo user-image" src="http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg" /></a></div>
294
+ </a>
295
+ <span class='fn'>
296
+ <a class='url' href='http://identi.ca/user/16938'>
297
+ Stephen Michael Kellat
298
+ (<span class="nickname user-text">alpacaherder</span>)
299
+ </a>
300
+ </span>
301
+ </div>
302
+ <div class='entry-content'>
303
+ <span class='message-text'>
304
+ Yeah, wasn't intending to bong the lid on the communion cup carrier stack. Made out as if I intended that. Looked crypto-Catholic again...
305
+ </span>
306
+ </div>
307
+ <div class='info'>
308
+ <time class="published" datetime="2012-06-03T15:09:01Z" pubdate="pubdate"><a class="timeago" href="http://identi.ca/notice/94266389" rel="bookmark message" title="2012-06-03T15:09:01Z"><span class="date-time">2012-06-03T15:09:01</span></a></time>
309
+ </div>
310
+ <div class='actions'>
311
+ </div>
312
+ </li>
313
+ </ul>
314
+ <nav class='pagination'>
315
+ </nav>
316
+
317
+ </div>
318
+
319
+ </div>
320
+ </div>
321
+ <div id='bottom'>
322
+ <div class='login'>
323
+ <a href='/login' rel='not-messages-all'>
324
+ Join the conversation
325
+ </a>
326
+ </div>
327
+ <div class='read-more'>
328
+ <a href='/updates' rel='messages-all something'>
329
+ more...
330
+ </a>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ <div id='sidebar'>
335
+ <div id='manifesto'>
336
+ <h3>rstat.us?</h3>
337
+
338
+ <p>Microblogging has taken the world by storm. Millions of people around the world now share their thoughts with friends, family, and random strangers every day. Links are shared, stories are told, and events are discussed. rstatus is the newest place to participate in the collective conscious of the planet.</p>
339
+
340
+ <h3>What's different about it?</h3>
341
+
342
+ <p>There are two things that make rstat.us special: <em>simplicity</em> and <em>openness</em>.</p>
343
+
344
+ <p><strong>Simplicity</strong> is a core 'feature' of rstat.us. We pride ourselves on saying 'no' to lots of features. Our interface is clean, and easy to understand. We give you just enough features to be interesting, but not enough to be complicated and confusing.</p>
345
+
346
+ <p>If you're a software developer, you'll probably want to check out our <a href="/open_source">Open Source page</a>. If that's greek to you, here's the deal on <strong>Openness</strong>: the programming code that makes up rstat.us is available for anyone to download, free of charge. Programmers can use that code to run their own websites just like rstat.us, and you can subscribe to your friends on any site that supports the <a href="http://ostatus.org/about">OStatus protocol</a>, like <a href="http://identi.ca/">identi.ca</a>. This also means that you can own your data, we'll never stop you from having full access to everything you've put into rstat.us.</p>
347
+
348
+ <p>- The <strong>rstat.us</strong> team</p>
349
+ </div>
350
+ </div>
351
+ </div>
352
+ <div id='footer'>
353
+ <div id='footer-wrap'>
354
+ <div id='footer-logo'>
355
+ <a href='/'>
356
+ rstat.us
357
+ </a>
358
+ </div>
359
+ <ul class='menu' id='footer-meu'>
360
+ <li class='home active'>
361
+ <a href='/'>Home</a>
362
+ </li>
363
+ <li class='login/signup '>
364
+ <a href='/login'>Login/Signup</a>
365
+ </li>
366
+ <li class='open_source '>
367
+ <a href='/open_source'>Open Source</a>
368
+ </li>
369
+ <li class='contact '>
370
+ <a href='/contact'>Contact</a>
371
+ </li>
372
+
373
+ </ul>
374
+
375
+ </div>
376
+ </div>
377
+
378
+ <script type="text/javascript">if (!NREUMQ.f) { NREUMQ.f=function() {
379
+ NREUMQ.push(["load",new Date().getTime()]);
380
+ var e=document.createElement("script");
381
+ e.type="text/javascript";e.async=true;e.src="https://d1ros97qkrwjf5.cloudfront.net/36/eum/rum-staging.js";
382
+ document.body.appendChild(e);
383
+ if(NREUMQ.a)NREUMQ.a();
384
+ };
385
+ NREUMQ.a=window.onload;window.onload=NREUMQ.f;
386
+ };
387
+ NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b64b06072",527427,"IF1bEhcOWQhXRxxFTQJGXAVKCVoJV0VSUVw=",0.0,818,new Date().getTime(),"","","","",""])</script></body>
388
+ </html>
389
+
390
+ http_version: "1.1"
391
+ recorded_at: Sun, 03 Jun 2012 15:21:12 GMT
392
+ - request:
393
+ method: get
394
+ uri: https://rstat.us/updates
395
+ body:
396
+ encoding: US-ASCII
397
+ string: ""
398
+ headers: {}
399
+
400
+ response:
401
+ status:
402
+ code: 200
403
+ message: "OK "
404
+ headers:
405
+ Server:
406
+ - nginx
407
+ Date:
408
+ - Sun, 03 Jun 2012 15:21:10 GMT
409
+ Content-Type:
410
+ - text/html; charset=utf-8
411
+ Transfer-Encoding:
412
+ - chunked
413
+ Connection:
414
+ - keep-alive
415
+ X-Ua-Compatible:
416
+ - IE=Edge,chrome=1
417
+ Etag:
418
+ - "\"6e69fa3d8325513ac67d60775fa95e7e\""
419
+ Cache-Control:
420
+ - max-age=0, private, must-revalidate
421
+ X-Runtime:
422
+ - "1.679158"
423
+ X-Rack-Cache:
424
+ - miss
425
+ Set-Cookie:
426
+ - _rstat.us_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWI2OWRlNDI5NGM0NWNkMjk4ZmVkODM0NTkzNjRjZDYyBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMU84bkFBampDc0F2NjJMUnBacllRUGpObFdRbCtzTlhtWFNKSWdWTkNrNkk9BjsARg%3D%3D--68469855ee3de2a6f1bc56eea36b0631bb26e691; path=/; expires=Sun, 10-Jun-2012 15:21:10 GMT; HttpOnly
427
+ X-Varnish:
428
+ - "1092141205"
429
+ Age:
430
+ - "0"
431
+ Via:
432
+ - 1.1 varnish
433
+ Content-Encoding:
434
+ - gzip
435
+ body:
436
+ encoding: ASCII-8BIT
437
+ string: "<!DOCTYPE html>\n\
438
+ <html class='no-js' lang='en'>\n\
439
+ <head><script type=\"text/javascript\">var NREUMQ=NREUMQ||[];NREUMQ.push([\"mark\",\"firstbyte\",new Date().getTime()]);</script>\n\
440
+ <meta charset='utf-8'>\n\
441
+ <title>updates - rstat.us</title>\n\
442
+ <script src=\"/assets/application-85f9725f39cb94c87fedaf584d19c2b4.js\" type=\"text/javascript\"></script>\n\
443
+ <link href=\"/assets/application-25f42916ee009ac80dfe4dc5aea6c47e.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n\
444
+ <meta content=\"authenticity_token\" name=\"csrf-param\" />\n\
445
+ <meta content=\"O8nAAjjCsAv62LRpZrYQPjNlWQl+sNXmXSJIgVNCk6I=\" name=\"csrf-token\" />\n\
446
+ <link href='images/mobile_icons/apple-touch-icon_114.png' rel='apple-touch-icon-precomposed' sizes='114x114'>\n\
447
+ <link href='images/mobile_icons/apple-touch-icon_72.png' rel='apple-touch-icon-precomposed' sizes='72x72'>\n\
448
+ <link href='images/mobile_icons/apple-touch-icon.png' rel='apple-touch-icon-precomposed'>\n\n\
449
+ <script>\n //<![CDATA[\n var _gaq = _gaq || [];\n _gaq.push(['_setAccount', 'UA-22030550-1']);\n _gaq.push(['_trackPageview']);\n \n (function() {\n var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);\n })();\n //]]>\n\
450
+ </script>\n\n\
451
+ </head>\n\n\
452
+ <body>\n\
453
+ <div id='header-wrap'>\n\
454
+ <div id='header'>\n\
455
+ <div id='logo'>\n\
456
+ <a href='/'>\n\
457
+ <h1>\n\
458
+ rstat.us\n\
459
+ </h1>\n\
460
+ </a>\n\
461
+ </div>\n\
462
+ <ul class='menu' id='main'>\n\
463
+ <li class='home '>\n <a href='/' rel='index-not-messages-all'>Home</a>\n </li>\n\
464
+ <li class='updates active'>\n <a href='/updates' rel='messages-all something'>Updates</a>\n </li>\n\
465
+ <li class='search '>\n <a href='/search'>Search</a>\n </li>\n\
466
+ <li class='users '>\n <a href='/users'>Users</a>\n </li>\n\
467
+ </ul>\n\n\n\
468
+ </div>\n\
469
+ </div>\n\n\n\
470
+ <div id='page'>\n\
471
+ <div id='content-wrap'>\n\
472
+ <div id='top'>\n\
473
+ <div id='flash'>\n\
474
+ </div>\n\n\
475
+ <div id='updates-menu-wrap'>\n\
476
+ <div id='updates-menu-background'>\n\
477
+ <ul class='menu' id='updates-menu'>\n\
478
+ <li class='world active'>\n <a href='/updates'><div class='icon'></div>World</a>\n </li>\n\
479
+ </ul>\n\n\
480
+ </div>\n\
481
+ </div>\n\n\
482
+ </div>\n\
483
+ <div id='content'>\n\
484
+ <div id='messages'>\n\
485
+ <ul class='all has-update-form updates' id='updates'>\n\
486
+ <li class='hentry message update' data-id='4fcb8067de8baf00010108a3' data-name='alpacaherder' id='update-4fcb8067de8baf00010108a3'>\n\
487
+ <div class='author vcard'>\n\
488
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>\n\
489
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/16938\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg\" /></a></div>\n\
490
+ </a>\n\
491
+ <span class='fn'>\n\
492
+ <a class='url' href='http://identi.ca/user/16938'>\n\
493
+ Stephen Michael Kellat\n\
494
+ (<span class=\"nickname user-text\">alpacaherder</span>)\n\
495
+ </a>\n\
496
+ </span>\n\
497
+ </div>\n\
498
+ <div class='entry-content'>\n\
499
+ <span class='message-text'>\n\
500
+ Hebrews 12:1-3 now\n\
501
+ </span>\n\
502
+ </div>\n\
503
+ <div class='info'>\n\
504
+ <time class=\"published\" datetime=\"2012-06-03T15:18:57Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94266528\" rel=\"bookmark message\" title=\"2012-06-03T15:18:57Z\"><span class=\"date-time\">2012-06-03T15:18:57</span></a></time>\n\
505
+ </div>\n\
506
+ <div class='actions'>\n\
507
+ </div>\n\
508
+ </li>\n\
509
+ <li class='hentry message update' data-id='4fcb7f30de8baf0001010763' data-name='jpope' id='update-4fcb7f30de8baf0001010763'>\n\
510
+ <div class='author vcard'>\n\
511
+ <a class='url' href='http://micro.jpope.org/user/1' rel='user'>\n\
512
+ <div class=\"avatar\"><a href=\"http://micro.jpope.org/user/1\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=e22211b8862bd536337a38d8ca1ef443&amp;default=http%3A%2F%2Fmicro.jpope.org%2Ftheme%2Fjpope%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
513
+ </a>\n\
514
+ <span class='fn'>\n\
515
+ <a class='url' href='http://micro.jpope.org/user/1'>\n\
516
+ jpope\n\
517
+ (<span class=\"nickname user-text\">jpope</span>)\n\
518
+ </a>\n\
519
+ </span>\n\
520
+ </div>\n\
521
+ <div class='entry-content'>\n\
522
+ <span class='message-text'>\n\
523
+ Compiling a video out of 4531 radar images. Should be fun. :)\n\
524
+ </span>\n\
525
+ </div>\n\
526
+ <div class='info'>\n\
527
+ <time class=\"published\" datetime=\"2012-06-03T15:13:34Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://micro.jpope.org/notice/336574\" rel=\"bookmark message\" title=\"2012-06-03T15:13:34Z\"><span class=\"date-time\">2012-06-03T15:13:34</span></a></time>\n\
528
+ </div>\n\
529
+ <div class='actions'>\n\
530
+ </div>\n\
531
+ </li>\n\
532
+ <li class='hentry message update' data-id='4fcb7ee0de8baf000101071b' data-name='alpacaherder' id='update-4fcb7ee0de8baf000101071b'>\n\
533
+ <div class='author vcard'>\n\
534
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>\n\
535
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/16938\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg\" /></a></div>\n\
536
+ </a>\n\
537
+ <span class='fn'>\n\
538
+ <a class='url' href='http://identi.ca/user/16938'>\n\
539
+ Stephen Michael Kellat\n\
540
+ (<span class=\"nickname user-text\">alpacaherder</span>)\n\
541
+ </a>\n\
542
+ </span>\n\
543
+ </div>\n\
544
+ <div class='entry-content'>\n\
545
+ <span class='message-text'>\n\
546
+ Phillipians 3:12-16 now...\n\
547
+ </span>\n\
548
+ </div>\n\
549
+ <div class='info'>\n\
550
+ <time class=\"published\" datetime=\"2012-06-03T15:12:31Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94266438\" rel=\"bookmark message\" title=\"2012-06-03T15:12:31Z\"><span class=\"date-time\">2012-06-03T15:12:31</span></a></time>\n\
551
+ </div>\n\
552
+ <div class='actions'>\n\
553
+ </div>\n\
554
+ </li>\n\
555
+ <li class='hentry message update' data-id='4fcb7e9ade8baf00010106b4' data-name='alpacaherder' id='update-4fcb7e9ade8baf00010106b4'>\n\
556
+ <div class='author vcard'>\n\
557
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>\n\
558
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/16938\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg\" /></a></div>\n\
559
+ </a>\n\
560
+ <span class='fn'>\n\
561
+ <a class='url' href='http://identi.ca/user/16938'>\n\
562
+ Stephen Michael Kellat\n\
563
+ (<span class=\"nickname user-text\">alpacaherder</span>)\n\
564
+ </a>\n\
565
+ </span>\n\
566
+ </div>\n\
567
+ <div class='entry-content'>\n\
568
+ <span class='message-text'>\n\
569
+ Today, we talk about retirement as mentioned in Numbers. Except for 1 reference, graduation &amp; retirement are concepts foreign to the Bible.\n\
570
+ </span>\n\
571
+ </div>\n\
572
+ <div class='info'>\n\
573
+ <time class=\"published\" datetime=\"2012-06-03T15:11:20Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94266421\" rel=\"bookmark message\" title=\"2012-06-03T15:11:20Z\"><span class=\"date-time\">2012-06-03T15:11:20</span></a></time>\n\
574
+ </div>\n\
575
+ <div class='actions'>\n\
576
+ </div>\n\
577
+ </li>\n\
578
+ <li class='hentry message update' data-id='4fcb7e84de8baf000101069b' data-name='parlementum' id='update-4fcb7e84de8baf000101069b'>\n\
579
+ <div class='author vcard'>\n\
580
+ <a class='url' href='http://parlementum.net/user/3785' rel='user'>\n\
581
+ <div class=\"avatar\"><a href=\"http://parlementum.net/user/3785\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://parlementum.net/avatar/3785-96-20120119032323.jpeg\" /></a></div>\n\
582
+ </a>\n\
583
+ <span class='fn'>\n\
584
+ <a class='url' href='http://parlementum.net/user/3785'>\n\
585
+ Charles Roth\n\
586
+ (<span class=\"nickname user-text\">parlementum</span>)\n\
587
+ </a>\n\
588
+ </span>\n\
589
+ </div>\n\
590
+ <div class='entry-content'>\n\
591
+ <span class='message-text'>\n\
592
+ The exuberant variety of little boats is as remarkable as the Royal Barge itself. <a href='/search?q=%23Jubilee'>#Jubilee</a>\n\
593
+ </span>\n\
594
+ </div>\n\
595
+ <div class='info'>\n\
596
+ <time class=\"published\" datetime=\"2012-06-03T15:10:41Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://parlementum.net/notice/2805967\" rel=\"bookmark message\" title=\"2012-06-03T15:10:41Z\"><span class=\"date-time\">2012-06-03T15:10:41</span></a></time>\n\
597
+ </div>\n\
598
+ <div class='actions'>\n\
599
+ </div>\n\
600
+ </li>\n\
601
+ <li class='hentry message update' data-id='4fcb7e11de8baf00010105d3' data-name='alpacaherder' id='update-4fcb7e11de8baf00010105d3'>\n\
602
+ <div class='author vcard'>\n\
603
+ <a class='url' href='http://identi.ca/user/16938' rel='user'>\n\
604
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/16938\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar3.status.net/i/identica/16938-96-20090624205858.jpeg\" /></a></div>\n\
605
+ </a>\n\
606
+ <span class='fn'>\n\
607
+ <a class='url' href='http://identi.ca/user/16938'>\n\
608
+ Stephen Michael Kellat\n\
609
+ (<span class=\"nickname user-text\">alpacaherder</span>)\n\
610
+ </a>\n\
611
+ </span>\n\
612
+ </div>\n\
613
+ <div class='entry-content'>\n\
614
+ <span class='message-text'>\n\
615
+ Yeah, wasn't intending to bong the lid on the communion cup carrier stack. Made out as if I intended that. Looked crypto-Catholic again...\n\
616
+ </span>\n\
617
+ </div>\n\
618
+ <div class='info'>\n\
619
+ <time class=\"published\" datetime=\"2012-06-03T15:09:01Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94266389\" rel=\"bookmark message\" title=\"2012-06-03T15:09:01Z\"><span class=\"date-time\">2012-06-03T15:09:01</span></a></time>\n\
620
+ </div>\n\
621
+ <div class='actions'>\n\
622
+ </div>\n\
623
+ </li>\n\
624
+ <li class='hentry message update' data-id='4fcb7af8de8baf0001010059' data-name='parlementum' id='update-4fcb7af8de8baf0001010059'>\n\
625
+ <div class='author vcard'>\n\
626
+ <a class='url' href='http://parlementum.net/user/3785' rel='user'>\n\
627
+ <div class=\"avatar\"><a href=\"http://parlementum.net/user/3785\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://parlementum.net/avatar/3785-96-20120119032323.jpeg\" /></a></div>\n\
628
+ </a>\n\
629
+ <span class='fn'>\n\
630
+ <a class='url' href='http://parlementum.net/user/3785'>\n\
631
+ Charles Roth\n\
632
+ (<span class=\"nickname user-text\">parlementum</span>)\n\
633
+ </a>\n\
634
+ </span>\n\
635
+ </div>\n\
636
+ <div class='entry-content'>\n\
637
+ <span class='message-text'>\n\
638
+ The weather on the Willamette is slightly betterthan the Thames this morning.\n\
639
+ </span>\n\
640
+ </div>\n\
641
+ <div class='info'>\n\
642
+ <time class=\"published\" datetime=\"2012-06-03T14:55:34Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://parlementum.net/notice/2805706\" rel=\"bookmark message\" title=\"2012-06-03T14:55:34Z\"><span class=\"date-time\">2012-06-03T14:55:34</span></a></time>\n\
643
+ </div>\n\
644
+ <div class='actions'>\n\
645
+ </div>\n\
646
+ </li>\n\
647
+ <li class='hentry message update' data-id='4fcb7893de8baf000100fb78' data-name='atomicules' id='update-4fcb7893de8baf000100fb78'>\n\
648
+ <div class='author vcard'>\n\
649
+ <a class='url' href='/users/atomicules' rel='user'>\n\
650
+ <div class=\"avatar\"><a href=\"/users/atomicules\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://gravatar.com/avatar/1fc29395337e8d71ace72c869e4e21e3?s=48&amp;r=r&amp;d=avatar.png\" /></a></div>\n\
651
+ </a>\n\
652
+ <span class='fn'>\n\
653
+ <a class='url' href='/users/atomicules'>\n\
654
+ atomicules\n\
655
+ (<span class=\"nickname user-text\">atomicules</span>)\n\
656
+ </a>\n\
657
+ </span>\n\
658
+ </div>\n\
659
+ <div class='entry-content'>\n\
660
+ <span class='message-text'>\n\
661
+ Returned home and take now wet washing off line and stick in tumble dryer. Why I ever bother trying to dry stuff on the line I do not know.\n\
662
+ </span>\n\
663
+ </div>\n\
664
+ <div class='info'>\n\
665
+ <time class=\"published\" datetime=\"2012-06-03T14:45:40Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"/updates/4fcb7893de8baf000100fb78\" rel=\"bookmark message\" title=\"2012-06-03T14:45:40Z\"><span class=\"date-time\">2012-06-03T14:45:40</span></a></time>\n\
666
+ </div>\n\
667
+ <div class='actions'>\n\
668
+ </div>\n\
669
+ </li>\n\
670
+ <li class='hentry message update' data-id='4fcb7851de8baf000100fa7e' data-name='atomicules' id='update-4fcb7851de8baf000100fa7e'>\n\
671
+ <div class='author vcard'>\n\
672
+ <a class='url' href='/users/atomicules' rel='user'>\n\
673
+ <div class=\"avatar\"><a href=\"/users/atomicules\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://gravatar.com/avatar/1fc29395337e8d71ace72c869e4e21e3?s=48&amp;r=r&amp;d=avatar.png\" /></a></div>\n\
674
+ </a>\n\
675
+ <span class='fn'>\n\
676
+ <a class='url' href='/users/atomicules'>\n\
677
+ atomicules\n\
678
+ (<span class=\"nickname user-text\">atomicules</span>)\n\
679
+ </a>\n\
680
+ </span>\n\
681
+ </div>\n\
682
+ <div class='entry-content'>\n\
683
+ <span class='message-text'>\n\
684
+ Been to local village Jubilee celebrations. Rained stopped play. Typically British weather.\n\
685
+ </span>\n\
686
+ </div>\n\
687
+ <div class='info'>\n\
688
+ <time class=\"published\" datetime=\"2012-06-03T14:44:34Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"/updates/4fcb7851de8baf000100fa7e\" rel=\"bookmark message\" title=\"2012-06-03T14:44:34Z\"><span class=\"date-time\">2012-06-03T14:44:34</span></a></time>\n\
689
+ </div>\n\
690
+ <div class='actions'>\n\
691
+ </div>\n\
692
+ </li>\n\
693
+ <li class='hentry message update' data-id='4fcb7809de8baf000100f9d6' data-name='jumax9' id='update-4fcb7809de8baf000100f9d6'>\n\
694
+ <div class='author vcard'>\n\
695
+ <a class='url' href='http://identi.ca/user/218408' rel='user'>\n\
696
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/218408\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar3.status.net/i/identica/218408-96-20101211123634.jpeg\" /></a></div>\n\
697
+ </a>\n\
698
+ <span class='fn'>\n\
699
+ <a class='url' href='http://identi.ca/user/218408'>\n\
700
+ JumaX9 Wright\n\
701
+ (<span class=\"nickname user-text\">jumax9</span>)\n\
702
+ </a>\n\
703
+ </span>\n\
704
+ </div>\n\
705
+ <div class='entry-content'>\n\
706
+ <span class='message-text'>\n\
707
+ Pierdo tan a menudo al MP que voy a tener que empezar a tomar antidepresivos.\n\
708
+ </span>\n\
709
+ </div>\n\
710
+ <div class='info'>\n\
711
+ <time class=\"published\" datetime=\"2012-06-03T14:43:19Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94265881\" rel=\"bookmark message\" title=\"2012-06-03T14:43:19Z\"><span class=\"date-time\">2012-06-03T14:43:19</span></a></time>\n\
712
+ </div>\n\
713
+ <div class='actions'>\n\
714
+ </div>\n\
715
+ </li>\n\
716
+ <li class='hentry message update' data-id='4fcb7792de8baf000100f5d5' data-name='parlementum' id='update-4fcb7792de8baf000100f5d5'>\n\
717
+ <div class='author vcard'>\n\
718
+ <a class='url' href='http://parlementum.net/user/3785' rel='user'>\n\
719
+ <div class=\"avatar\"><a href=\"http://parlementum.net/user/3785\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://parlementum.net/avatar/3785-96-20120119032323.jpeg\" /></a></div>\n\
720
+ </a>\n\
721
+ <span class='fn'>\n\
722
+ <a class='url' href='http://parlementum.net/user/3785'>\n\
723
+ Charles Roth\n\
724
+ (<span class=\"nickname user-text\">parlementum</span>)\n\
725
+ </a>\n\
726
+ </span>\n\
727
+ </div>\n\
728
+ <div class='entry-content'>\n\
729
+ <span class='message-text'>\n\
730
+ Forced to watch the Jubilee on FOX. Are the anchors all so abysmally ignorant of the topics they cover?\n\
731
+ </span>\n\
732
+ </div>\n\
733
+ <div class='info'>\n\
734
+ <time class=\"published\" datetime=\"2012-06-03T14:41:07Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://parlementum.net/notice/2805497\" rel=\"bookmark message\" title=\"2012-06-03T14:41:07Z\"><span class=\"date-time\">2012-06-03T14:41:07</span></a></time>\n\
735
+ </div>\n\
736
+ <div class='actions'>\n\
737
+ </div>\n\
738
+ </li>\n\
739
+ <li class='hentry message update' data-id='4fcb76fbde8baf000100f536' data-name='parlementum' id='update-4fcb76fbde8baf000100f536'>\n\
740
+ <div class='author vcard'>\n\
741
+ <a class='url' href='http://parlementum.net/user/3785' rel='user'>\n\
742
+ <div class=\"avatar\"><a href=\"http://parlementum.net/user/3785\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://parlementum.net/avatar/3785-96-20120119032323.jpeg\" /></a></div>\n\
743
+ </a>\n\
744
+ <span class='fn'>\n\
745
+ <a class='url' href='http://parlementum.net/user/3785'>\n\
746
+ Charles Roth\n\
747
+ (<span class=\"nickname user-text\">parlementum</span>)\n\
748
+ </a>\n\
749
+ </span>\n\
750
+ </div>\n\
751
+ <div class='entry-content'>\n\
752
+ <span class='message-text'>\n\
753
+ @IdleHistorian either the books or the tv series are a delight. I am sure you will enjoy them.\n\
754
+ </span>\n\
755
+ </div>\n\
756
+ <div class='info'>\n\
757
+ <time class=\"published\" datetime=\"2012-06-03T14:38:28Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://parlementum.net/notice/2805434\" rel=\"bookmark message\" title=\"2012-06-03T14:38:28Z\"><span class=\"date-time\">2012-06-03T14:38:28</span></a></time>\n\
758
+ </div>\n\
759
+ <div class='actions'>\n\
760
+ </div>\n\
761
+ </li>\n\
762
+ <li class='hentry message update' data-id='4fcb7365de8baf000100ecfc' data-name='solserpiente' id='update-4fcb7365de8baf000100ecfc'>\n\
763
+ <div class='author vcard'>\n\
764
+ <a class='url' href='http://identi.ca/user/607642' rel='user'>\n\
765
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/607642\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=344de61a1685b4f3ccb35437f58adb52&amp;default=http%3A%2F%2Ftheme1.status.net%2Fneo%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
766
+ </a>\n\
767
+ <span class='fn'>\n\
768
+ <a class='url' href='http://identi.ca/user/607642'>\n\
769
+ Tony Solserpiente\n\
770
+ (<span class=\"nickname user-text\">solserpiente</span>)\n\
771
+ </a>\n\
772
+ </span>\n\
773
+ </div>\n\
774
+ <div class='entry-content'>\n\
775
+ <span class='message-text'>\n\
776
+ solserpiente: Como empiecen a tocar a los abuelos entonces s\xC3\xAD que me v\xC3\xA1is a ver cogiendo la horca y la azada. Cabrones. <a href='http://t.co/WRpa1h3u'>http://t.co/WRpa1h3u</a>\n\
777
+ </span>\n\
778
+ </div>\n\
779
+ <div class='info'>\n\
780
+ <time class=\"published\" datetime=\"2012-06-03T14:23:31Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://twitter.com/solserpiente/statuses/209285824469151744\" rel=\"bookmark message\" title=\"2012-06-03T14:23:31Z\"><span class=\"date-time\">2012-06-03T14:23:31</span></a></time>\n\
781
+ </div>\n\
782
+ <div class='actions'>\n\
783
+ </div>\n\
784
+ </li>\n\
785
+ <li class='hentry message update' data-id='4fcb735fde8baf000100ecf5' data-name='solserpiente' id='update-4fcb735fde8baf000100ecf5'>\n\
786
+ <div class='author vcard'>\n\
787
+ <a class='url' href='http://identi.ca/user/607642' rel='user'>\n\
788
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/607642\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=344de61a1685b4f3ccb35437f58adb52&amp;default=http%3A%2F%2Ftheme1.status.net%2Fneo%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
789
+ </a>\n\
790
+ <span class='fn'>\n\
791
+ <a class='url' href='http://identi.ca/user/607642'>\n\
792
+ Tony Solserpiente\n\
793
+ (<span class=\"nickname user-text\">solserpiente</span>)\n\
794
+ </a>\n\
795
+ </span>\n\
796
+ </div>\n\
797
+ <div class='entry-content'>\n\
798
+ <span class='message-text'>\n\
799
+ solserpiente: @MacTrappa Como en casi todo, esto es una cuesti\xC3\xB3n de masa cr\xC3\xADtica. Si hay suficiente gente a favor, ser\xC3\xA1 imparable\n\
800
+ </span>\n\
801
+ </div>\n\
802
+ <div class='info'>\n\
803
+ <time class=\"published\" datetime=\"2012-06-03T14:23:20Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://twitter.com/solserpiente/statuses/209280280190652416\" rel=\"bookmark message\" title=\"2012-06-03T14:23:20Z\"><span class=\"date-time\">2012-06-03T14:23:20</span></a></time>\n\
804
+ </div>\n\
805
+ <div class='actions'>\n\
806
+ </div>\n\
807
+ </li>\n\
808
+ <li class='hentry message update' data-id='4fcb7228de8baf000100ea99' data-name='jpope' id='update-4fcb7228de8baf000100ea99'>\n\
809
+ <div class='author vcard'>\n\
810
+ <a class='url' href='http://micro.jpope.org/user/1' rel='user'>\n\
811
+ <div class=\"avatar\"><a href=\"http://micro.jpope.org/user/1\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=e22211b8862bd536337a38d8ca1ef443&amp;default=http%3A%2F%2Fmicro.jpope.org%2Ftheme%2Fjpope%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
812
+ </a>\n\
813
+ <span class='fn'>\n\
814
+ <a class='url' href='http://micro.jpope.org/user/1'>\n\
815
+ jpope\n\
816
+ (<span class=\"nickname user-text\">jpope</span>)\n\
817
+ </a>\n\
818
+ </span>\n\
819
+ </div>\n\
820
+ <div class='entry-content'>\n\
821
+ <span class='message-text'>\n\
822
+ I think it\xE2\x80\x99s been washed but, it did get a \xE2\x80\x9CYou\xE2\x80\x99re wearing that?\xE2\x80\x9D from the wife. :)\n\
823
+ </span>\n\
824
+ </div>\n\
825
+ <div class='info'>\n\
826
+ <time class=\"published\" datetime=\"2012-06-03T14:17:32Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://micro.jpope.org/notice/336520\" rel=\"bookmark message\" title=\"2012-06-03T14:17:32Z\"><span class=\"date-time\">2012-06-03T14:17:32</span></a></time>\n\
827
+ </div>\n\
828
+ <div class='actions'>\n\
829
+ </div>\n\
830
+ </li>\n\
831
+ <li class='hentry message update' data-id='4fcb71e3de8baf000100e9b8' data-name='jpope' id='update-4fcb71e3de8baf000100e9b8'>\n\
832
+ <div class='author vcard'>\n\
833
+ <a class='url' href='http://micro.jpope.org/user/1' rel='user'>\n\
834
+ <div class=\"avatar\"><a href=\"http://micro.jpope.org/user/1\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=e22211b8862bd536337a38d8ca1ef443&amp;default=http%3A%2F%2Fmicro.jpope.org%2Ftheme%2Fjpope%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
835
+ </a>\n\
836
+ <span class='fn'>\n\
837
+ <a class='url' href='http://micro.jpope.org/user/1'>\n\
838
+ jpope\n\
839
+ (<span class=\"nickname user-text\">jpope</span>)\n\
840
+ </a>\n\
841
+ </span>\n\
842
+ </div>\n\
843
+ <div class='entry-content'>\n\
844
+ <span class='message-text'>\n\
845
+ There\xE2\x80\x99s not a plugin for bosh? I just had to enable the plugin for prosody.\n\
846
+ </span>\n\
847
+ </div>\n\
848
+ <div class='info'>\n\
849
+ <time class=\"published\" datetime=\"2012-06-03T14:16:46Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://micro.jpope.org/notice/336519\" rel=\"bookmark message\" title=\"2012-06-03T14:16:46Z\"><span class=\"date-time\">2012-06-03T14:16:46</span></a></time>\n\
850
+ </div>\n\
851
+ <div class='actions'>\n\
852
+ </div>\n\
853
+ </li>\n\
854
+ <li class='hentry message update' data-id='4fcb7032de8baf000100e6db' data-name='jpope' id='update-4fcb7032de8baf000100e6db'>\n\
855
+ <div class='author vcard'>\n\
856
+ <a class='url' href='http://micro.jpope.org/user/1' rel='user'>\n\
857
+ <div class=\"avatar\"><a href=\"http://micro.jpope.org/user/1\"><img alt=\"avatar\" class=\"photo user-image\" src=\"https://secure.gravatar.com/avatar.php?gravatar_id=e22211b8862bd536337a38d8ca1ef443&amp;default=http%3A%2F%2Fmicro.jpope.org%2Ftheme%2Fjpope%2Fdefault-avatar-profile.png&amp;size=96\" /></a></div>\n\
858
+ </a>\n\
859
+ <span class='fn'>\n\
860
+ <a class='url' href='http://micro.jpope.org/user/1'>\n\
861
+ jpope\n\
862
+ (<span class=\"nickname user-text\">jpope</span>)\n\
863
+ </a>\n\
864
+ </span>\n\
865
+ </div>\n\
866
+ <div class='entry-content'>\n\
867
+ <span class='message-text'>\n\
868
+ Lazy day for sure, I slept in to 8. ;)\n\
869
+ </span>\n\
870
+ </div>\n\
871
+ <div class='info'>\n\
872
+ <time class=\"published\" datetime=\"2012-06-03T14:09:34Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://micro.jpope.org/notice/336516\" rel=\"bookmark message\" title=\"2012-06-03T14:09:34Z\"><span class=\"date-time\">2012-06-03T14:09:34</span></a></time>\n\
873
+ </div>\n\
874
+ <div class='actions'>\n\
875
+ </div>\n\
876
+ </li>\n\
877
+ <li class='hentry message update' data-id='4fcb6f2fde8baf000100e52f' data-name='theru' id='update-4fcb6f2fde8baf000100e52f'>\n\
878
+ <div class='author vcard'>\n\
879
+ <a class='url' href='http://identi.ca/user/26098' rel='user'>\n\
880
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/26098\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar.identi.ca/26098-96-20090125093912.png\" /></a></div>\n\
881
+ </a>\n\
882
+ <span class='fn'>\n\
883
+ <a class='url' href='http://identi.ca/user/26098'>\n\
884
+ Kim Rasmussen\n\
885
+ (<span class=\"nickname user-text\">theru</span>)\n\
886
+ </a>\n\
887
+ </span>\n\
888
+ </div>\n\
889
+ <div class='entry-content'>\n\
890
+ <span class='message-text'>\n\
891
+ as pro !lo forum user @nailuj just pointed out the forum is back :)\n\
892
+ </span>\n\
893
+ </div>\n\
894
+ <div class='info'>\n\
895
+ <time class=\"published\" datetime=\"2012-06-03T14:05:21Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94265283\" rel=\"bookmark message\" title=\"2012-06-03T14:05:21Z\"><span class=\"date-time\">2012-06-03T14:05:21</span></a></time>\n\
896
+ </div>\n\
897
+ <div class='actions'>\n\
898
+ </div>\n\
899
+ </li>\n\
900
+ <li class='hentry message update' data-id='4fcb6ee0de8baf000100e4cc' data-name='thp' id='update-4fcb6ee0de8baf000100e4cc'>\n\
901
+ <div class='author vcard'>\n\
902
+ <a class='url' href='http://identi.ca/user/28928' rel='user'>\n\
903
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/28928\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar.identi.ca/28928-96-20110131123526.png\" /></a></div>\n\
904
+ </a>\n\
905
+ <span class='fn'>\n\
906
+ <a class='url' href='http://identi.ca/user/28928'>\n\
907
+ Thomas Perl\n\
908
+ (<span class=\"nickname user-text\">thp</span>)\n\
909
+ </a>\n\
910
+ </span>\n\
911
+ </div>\n\
912
+ <div class='entry-content'>\n\
913
+ <span class='message-text'>\n\
914
+ Don't know why Uni courses advise against System.exit(). IMHO System.exit() should be the first and only statement of every Java program.\n\
915
+ </span>\n\
916
+ </div>\n\
917
+ <div class='info'>\n\
918
+ <time class=\"published\" datetime=\"2012-06-03T14:04:13Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94265268\" rel=\"bookmark message\" title=\"2012-06-03T14:04:13Z\"><span class=\"date-time\">2012-06-03T14:04:13</span></a></time>\n\
919
+ </div>\n\
920
+ <div class='actions'>\n\
921
+ </div>\n\
922
+ </li>\n\
923
+ <li class='hentry message update' data-id='4fcb6dd3de8baf000100e28f' data-name='theru' id='update-4fcb6dd3de8baf000100e28f'>\n\
924
+ <div class='author vcard'>\n\
925
+ <a class='url' href='http://identi.ca/user/26098' rel='user'>\n\
926
+ <div class=\"avatar\"><a href=\"http://identi.ca/user/26098\"><img alt=\"avatar\" class=\"photo user-image\" src=\"http://avatar.identi.ca/26098-96-20090125093912.png\" /></a></div>\n\
927
+ </a>\n\
928
+ <span class='fn'>\n\
929
+ <a class='url' href='http://identi.ca/user/26098'>\n\
930
+ Kim Rasmussen\n\
931
+ (<span class=\"nickname user-text\">theru</span>)\n\
932
+ </a>\n\
933
+ </span>\n\
934
+ </div>\n\
935
+ <div class='entry-content'>\n\
936
+ <span class='message-text'>\n\
937
+ @nailuj cheers for the head up :)\n\
938
+ </span>\n\
939
+ </div>\n\
940
+ <div class='info'>\n\
941
+ <time class=\"published\" datetime=\"2012-06-03T13:59:25Z\" pubdate=\"pubdate\"><a class=\"timeago\" href=\"http://identi.ca/notice/94265151\" rel=\"bookmark message\" title=\"2012-06-03T13:59:25Z\"><span class=\"date-time\">2012-06-03T13:59:25</span></a></time>\n\
942
+ </div>\n\
943
+ <div class='actions'>\n\
944
+ </div>\n\
945
+ </li>\n\
946
+ </ul>\n\
947
+ <nav class='pagination'>\n\
948
+ <a class='button' href='?page=2&amp;per_page=20' id='next_button' rel='next'>\n\
949
+ Next &raquo;\n\
950
+ </a>\n\
951
+ </nav>\n\n\
952
+ </div>\n\n\n\
953
+ </div>\n\n\
954
+ </div>\n\
955
+ <div id='sidebar'>\n\n\
956
+ <div class='block'>\n\
957
+ <h5 class='title'>\n\
958
+ Join rstat.us\n\
959
+ </h5>\n\
960
+ <p>\n\
961
+ Sign up now and start sharing\n\
962
+ </p>\n\
963
+ <p>\n\
964
+ <a href='/login'>Sign up</a>\n\
965
+ </p>\n\
966
+ </div>\n\n\n\
967
+ </div>\n\
968
+ </div>\n\
969
+ <div id='footer'>\n\
970
+ <div id='footer-wrap'>\n\
971
+ <div id='footer-logo'>\n\
972
+ <a href='/'>\n\
973
+ rstat.us\n\
974
+ </a>\n\
975
+ </div>\n\
976
+ <ul class='menu' id='footer-meu'>\n\
977
+ <li class='home '>\n <a href='/'>Home</a>\n </li>\n\
978
+ <li class='login/signup '>\n <a href='/login'>Login/Signup</a>\n </li>\n\
979
+ <li class='open_source '>\n <a href='/open_source'>Open Source</a>\n </li>\n\
980
+ <li class='contact '>\n <a href='/contact'>Contact</a>\n </li>\n\n\
981
+ </ul>\n\n\
982
+ </div>\n\
983
+ </div>\n\n\
984
+ <script type=\"text/javascript\">if (!NREUMQ.f) { NREUMQ.f=function() {\n\
985
+ NREUMQ.push([\"load\",new Date().getTime()]);\n\
986
+ var e=document.createElement(\"script\");\n\
987
+ e.type=\"text/javascript\";e.async=true;e.src=\"https://d1ros97qkrwjf5.cloudfront.net/36/eum/rum-staging.js\";\n\
988
+ document.body.appendChild(e);\n\
989
+ if(NREUMQ.a)NREUMQ.a();\n\
990
+ };\n\
991
+ NREUMQ.a=window.onload;window.onload=NREUMQ.f;\n\
992
+ };\n\
993
+ NREUMQ.push([\"nrfj\",\"beacon-1.newrelic.com\",\"1b64b06072\",527427,\"IF1bEhcOWQhXRxxDSQdTQQMWTlwKVlBL\",0.0,1676,new Date().getTime(),\"\",\"\",\"\",\"\",\"\"])</script></body>\n\
994
+ </html>\n"
995
+ http_version: "1.1"
996
+ recorded_at: Sun, 03 Jun 2012 15:21:14 GMT
997
+ recorded_with: VCR 2.1.1