hwacha 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTBmODUxMmExYTI2YWY3NGExZWFhY2E1Njk0ZjU2NDBlMjI0OGUxOQ==
5
- data.tar.gz: !binary |-
6
- YTM0YzExNWNiN2M0OTFlM2RiOGUwZTlhZTE0ZTc2YzY1ZWFlMTBlYQ==
2
+ SHA1:
3
+ metadata.gz: e92a5b7c5af09c2564fa63ee249a62af4d580015
4
+ data.tar.gz: 70467fdde11f3e5eaed904578b8971adb49801d4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MmYzNjgzMjZiMmZmZjdlNDlkMWU0ZTJkMzhiZjJkMjg2OTAwYTNhZGI4MjMw
10
- NzIyMDU5NTBkNjNjMGZlYjA1NDZmNzkwNDIwZTBkYjQxMjI5Zjc4MmRhYmFk
11
- OTIyYjhiZDMxYWVkNTg5MjFkNDMzODBiYjQ3NGJhMjU5YmY2MjE=
12
- data.tar.gz: !binary |-
13
- NTliYzhiM2QzNmY5YjMxNDVlYjhlNjA5NjRiMWRkMGQ3ZjliYWVhMWY5YTI5
14
- MmFhMjdmYzllMTU5YmY0ZWEzZTJiN2ZhZTc2OTM3MjJhODFkOWM5MGJmZjVk
15
- MDVlOTlhZGUyMjMxMjk2MTA3YWNkNjM4YTcxZTFhZGM5ZmYwNmM=
6
+ metadata.gz: e697c506c9bbef585cccd3cd4bf09702c724dcd93341d895f41e1ac51ba03adc3ff6b0fb731cc9893e373b10e8c0dad407ca1827210953b15445afc0f2fd10d5
7
+ data.tar.gz: e5df38e7d635afbabb56acfca184b7c26b616e51367ade0e4870db6cad349834c6a70258c5451c92aa24a5293e0ab99b332b08e384b42651e6f876d46653c5bf
data/.gitignore CHANGED
@@ -16,3 +16,6 @@ tmp
16
16
  .yardoc
17
17
  _yardoc
18
18
  doc/
19
+
20
+ # Mac Finder
21
+ .DS_Store
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hwacha (0.2.0)
4
+ hwacha (0.3.0)
5
5
  typhoeus
6
6
 
7
7
  GEM
@@ -3,7 +3,7 @@ require "hwacha/config"
3
3
  require "typhoeus"
4
4
 
5
5
  class Hwacha
6
- attr_reader :max_concurrent_requests
6
+ attr_reader :config
7
7
 
8
8
  def initialize(max_concurrent_requests=20)
9
9
  config = Hwacha::Config.new
@@ -14,11 +14,11 @@ class Hwacha
14
14
  # the nice configuration object API
15
15
  yield config if block_given?
16
16
 
17
- @max_concurrent_requests = config.max_concurrent_requests
17
+ @config = config
18
18
  end
19
19
 
20
20
  def check(urls)
21
- hydra = Typhoeus::Hydra.new(:max_concurrency => @max_concurrent_requests)
21
+ hydra = build_hydra
22
22
 
23
23
  Array(urls).each do |url|
24
24
  request = Typhoeus::Request.new(url)
@@ -40,4 +40,8 @@ class Hwacha
40
40
  # Hwacha!!!
41
41
  alias :fire :check
42
42
  alias :strike_true :find_existing
43
+
44
+ def build_hydra
45
+ Typhoeus::Hydra.new(config.options)
46
+ end
43
47
  end
@@ -2,5 +2,16 @@ require 'ostruct'
2
2
 
3
3
  class Hwacha
4
4
  class Config < OpenStruct
5
+ def options
6
+ options = {}
7
+ options.merge(concurrency_option)
8
+ end
9
+
10
+ private
11
+
12
+ def concurrency_option
13
+ return {} if max_concurrent_requests.nil?
14
+ { :max_concurrency => max_concurrent_requests }
15
+ end
5
16
  end
6
17
  end
@@ -1,3 +1,3 @@
1
1
  class Hwacha
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: rakeroutes.com/this-url-does-not-exist
5
+ uri: http://rakeroutes.com/this-page-does-not-exist
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -15,29 +15,40 @@ http_interactions:
15
15
  message: Not Found
16
16
  headers:
17
17
  Date:
18
- - Tue, 03 Dec 2013 06:07:19 GMT
18
+ - Mon, 13 Jan 2014 01:18:31 GMT
19
19
  Server:
20
20
  - Apache
21
21
  Vary:
22
22
  - Accept-Encoding
23
23
  Content-Length:
24
- - '340'
24
+ - '341'
25
25
  Content-Type:
26
26
  - text/html; charset=iso-8859-1
27
27
  body:
28
- encoding: UTF-8
29
- string: |
30
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
28
+ encoding: US-ASCII
29
+ string: ! '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
30
+
31
31
  <html><head>
32
+
32
33
  <title>404 Not Found</title>
34
+
33
35
  </head><body>
36
+
34
37
  <h1>Not Found</h1>
35
- <p>The requested URL /this-url-does-not-exist was not found on this server.</p>
38
+
39
+ <p>The requested URL /this-page-does-not-exist was not found on this server.</p>
40
+
36
41
  <p>Additionally, a 404 Not Found
42
+
37
43
  error was encountered while trying to use an ErrorDocument to handle the request.</p>
44
+
38
45
  </body></html>
46
+
47
+ '
39
48
  http_version: '1.1'
40
49
  adapter_metadata:
41
- effective_url: HTTP://rakeroutes.com/this-url-does-not-exist
42
- recorded_at: Tue, 03 Dec 2013 06:07:19 GMT
50
+ effective_url: !binary |-
51
+ aHR0cDovL3Jha2Vyb3V0ZXMuY29tL3RoaXMtcGFnZS1kb2VzLW5vdC1leGlz
52
+ dA==
53
+ recorded_at: Mon, 13 Jan 2014 01:18:31 GMT
43
54
  recorded_with: VCR 2.8.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: rakeroutes.com
5
+ uri: http://rakeroutes.com/
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -15,7 +15,7 @@ http_interactions:
15
15
  message: OK
16
16
  headers:
17
17
  Date:
18
- - Tue, 03 Dec 2013 06:07:19 GMT
18
+ - Mon, 13 Jan 2014 01:16:12 GMT
19
19
  Server:
20
20
  - Apache
21
21
  Accept-Ranges:
@@ -27,285 +27,625 @@ http_interactions:
27
27
  Vary:
28
28
  - Accept-Encoding,User-Agent
29
29
  Content-Length:
30
- - '15195'
30
+ - '14856'
31
31
  Content-Type:
32
32
  - text/html
33
33
  body:
34
- encoding: UTF-8
35
- string: |2
34
+ encoding: US-ASCII
35
+ string: ! '
36
36
 
37
37
  <!DOCTYPE html>
38
+
38
39
  <!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
40
+
39
41
  <!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
40
- <!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
42
+
43
+ <!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js"
44
+ lang="en"><!--<![endif]-->
45
+
41
46
  <head>
47
+
42
48
  <meta charset="utf-8">
49
+
43
50
  <title>Rake Routes</title>
51
+
44
52
  <meta name="author" content="Stephen Ball">
45
- <meta name="description" content="A blog focused on the new Ruby/Rails developer. From the basics to the advanced; we try to write every article to be completely accessible.">
53
+
54
+ <meta name="description" content="A blog focused on the new Ruby/Rails developer.
55
+ From the basics to the advanced; we try to write every article to be completely
56
+ accessible.">
57
+
46
58
  <!-- http://t.co/dKP3o1e -->
59
+
47
60
  <meta name="HandheldFriendly" content="True">
61
+
48
62
  <meta name="MobileOptimized" content="320">
63
+
49
64
  <meta name="viewport" content="width=device-width, initial-scale=1">
65
+
50
66
  <link rel="canonical" href="http://rakeroutes.com">
51
- <link href="http://rakeroutes.com/xfavicon.png.pagespeed.ic.9sqLog9_Yb.png" rel="icon">
52
- <link href="http://rakeroutes.com/stylesheets/A.screen.css.pagespeed.cf.B_lQ_FV7Zb.css" media="screen, projection" rel="stylesheet" type="text/css">
67
+
68
+ <link href="http://rakeroutes.com/xfavicon.png.pagespeed.ic.9sqLog9_Yb.png"
69
+ rel="icon">
70
+
71
+ <link href="http://rakeroutes.com/stylesheets/A.screen.css.pagespeed.cf.B_lQ_FV7Zb.css"
72
+ media="screen, projection" rel="stylesheet" type="text/css">
73
+
53
74
  <script src="http://rakeroutes.com/javascripts/modernizr-2.0.js.pagespeed.jm.tWJiHFCbtH.js"></script>
75
+
54
76
  <script src="http://rakeroutes.com/javascripts/ender.js.pagespeed.jm.RrToSBMcQ6.js"></script>
55
- <script src="http://rakeroutes.com/javascripts/octopress.js.pagespeed.jm.1C8AxdO_gr.js" type="text/javascript"></script>
56
- <link href="http://feeds.feedburner.com/RakeRoutes" rel="alternate" title="Rake Routes" type="application/atom+xml">
77
+
78
+ <script src="http://rakeroutes.com/javascripts/octopress.js.pagespeed.jm.1C8AxdO_gr.js"
79
+ type="text/javascript"></script>
80
+
81
+ <link href="http://feeds.feedburner.com/RakeRoutes" rel="alternate" title="Rake
82
+ Routes" type="application/atom+xml">
83
+
57
84
  <!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
58
- <link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
59
- <link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
85
+
86
+ <link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic"
87
+ rel="stylesheet" type="text/css">
88
+
89
+ <link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic"
90
+ rel="stylesheet" type="text/css">
91
+
60
92
  <meta name="readability-verification" content="AK9Dcwz9jtUc56rWDsh5HXSfVARa3Z7GDjCdBtk9"/>
93
+
61
94
  <meta name="readability-verification" content="EAL7Vhv7W4KCBkyHjGZBxndkzqZfmbTVGRRVRFre"/>
95
+
62
96
  </head>
97
+
63
98
  <body>
99
+
64
100
  <header role="banner"><hgroup>
101
+
65
102
  <h1><a href="/">Rake Routes</a></h1>
103
+
66
104
  <h2>Rails, Ruby, and other programming.</h2>
105
+
67
106
  </hgroup>
107
+
68
108
  </header>
109
+
69
110
  <nav role="navigation"><ul class="subscription" data-subscription="rss email">
70
- <li><a onclick="clicky.goal( '6111' ); clicky.pause( 500 );" href="http://feeds.feedburner.com/RakeRoutes" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
71
- <li><a onclick="clicky.goal('6117'); clicky.pause( 500 );" href="http://feedburner.google.com/fb/a/mailverify?uri=RakeRoutes&amp;loc=en_US" rel="subscribe-email" title="subscribe via email">Email</a></li>
111
+
112
+ <li><a onclick="clicky.goal( ''6111'' ); clicky.pause( 500 );" href="http://feeds.feedburner.com/RakeRoutes"
113
+ rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
114
+
115
+ <li><a onclick="clicky.goal(''6117''); clicky.pause( 500 );" href="http://feedburner.google.com/fb/a/mailverify?uri=RakeRoutes&amp;loc=en_US"
116
+ rel="subscribe-email" title="subscribe via email">Email</a></li>
117
+
72
118
  </ul>
119
+
73
120
  <form action="http://google.com/search" method="get">
121
+
74
122
  <fieldset role="search">
123
+
75
124
  <input type="hidden" name="q" value="site:rakeroutes.com"/>
125
+
76
126
  <input class="search" type="text" name="q" results="0" placeholder="Search"/>
127
+
77
128
  </fieldset>
129
+
78
130
  </form>
131
+
79
132
  <ul class="main-navigation">
133
+
80
134
  <li><a href="/">Blog</a></li>
135
+
81
136
  <li><a href="/blog/archives">Archives</a></li>
137
+
82
138
  </ul>
139
+
83
140
  </nav>
141
+
84
142
  <div id="main">
143
+
85
144
  <div id="content">
145
+
86
146
  <div class="blog-index">
147
+
148
+ <article>
149
+
150
+ <header>
151
+
152
+ <h1 class="entry-title"><a href="/blog/lets-use-hwacha-to-scan-urls/">Let&#8217;s
153
+ Use Hwacha to Scan URLs</a></h1>
154
+
155
+ <p class="meta">
156
+
157
+ <time datetime="2013-12-18T23:43:00-05:00" pubdate data-updated="true">Dec
158
+ 18<span>th</span>, 2013</time>
159
+
160
+ </p>
161
+
162
+ </header>
163
+
164
+ <div class="entry-content"><p>I&#8217;ve written a gem, <a href="https://github.com/sdball/hwacha">Hwacha</a>,
165
+ as a wrapper
166
+
167
+ around Typhoeus to allow for quick and easy response checking for multiple
168
+
169
+ URLs. Let&#8217;s go through some simple use cases!</p>
170
+
171
+ </div>
172
+
173
+ <footer>
174
+
175
+ <a rel="full-article" href="/blog/lets-use-hwacha-to-scan-urls/">Read on &rarr;</a>
176
+
177
+ </footer>
178
+
179
+ </article>
180
+
87
181
  <article>
182
+
88
183
  <header>
184
+
89
185
  <h1 class="entry-title"><a href="/blog/deliberate-git/">Deliberate Git</a></h1>
186
+
90
187
  <p class="meta">
91
- <time datetime="2013-08-19T19:35:00-04:00" pubdate data-updated="true">Aug 19<span>th</span>, 2013</time>
188
+
189
+ <time datetime="2013-08-19T19:35:00-04:00" pubdate data-updated="true">Aug
190
+ 19<span>th</span>, 2013</time>
191
+
92
192
  </p>
193
+
93
194
  </header>
94
- <div class="entry-content"><p>Hello Internet! Here&#8217;s my talk &#8220;Deliberate Git&#8221; in blog post form.</p>
95
- <p>There&#8217;s also video of my presentation of <a href="http://steelcityruby.confbots.com/video/72762735">Deliberate Git at Steel City Ruby 2013</a>.</p>
96
- <p>If you&#8217;d like to just read the slides they&#8217;re up on Speaker Deck: <a href="https://speakerdeck.com/sdball/deliberate-git">Deliberate
195
+
196
+ <div class="entry-content"><p>Hello Internet! Here&#8217;s my talk &#8220;Deliberate
197
+ Git&#8221; in blog post form.</p>
198
+
199
+ <p>There&#8217;s also video of my presentation of <a href="http://steelcityruby.confbots.com/video/72762735">Deliberate
200
+ Git at Steel City Ruby 2013</a>.</p>
201
+
202
+ <p>If you&#8217;d like to just read the slides they&#8217;re up on Speaker
203
+ Deck: <a href="https://speakerdeck.com/sdball/deliberate-git">Deliberate
204
+
97
205
  Git - Slides</a>. Although I highly
98
- recommend just pointing people to this blog post if they want to read the talk
206
+
207
+ recommend just pointing people to this blog post if they want to read the
208
+ talk
209
+
99
210
  instead of watching it online.</p>
100
- <p>Special thanks to PhishMe for sending me to Steel City Ruby to give this talk!</p>
211
+
212
+ <p>Special thanks to PhishMe for sending me to Steel City Ruby to give this
213
+ talk!</p>
214
+
101
215
  </div>
216
+
102
217
  <footer>
218
+
103
219
  <a rel="full-article" href="/blog/deliberate-git/">Read on &rarr;</a>
220
+
104
221
  </footer>
222
+
105
223
  </article>
224
+
106
225
  <article>
226
+
107
227
  <header>
108
- <h1 class="entry-title"><a href="/blog/customize-your-irb/">Customize Your IRB</a></h1>
228
+
229
+ <h1 class="entry-title"><a href="/blog/customize-your-irb/">Customize Your
230
+ IRB</a></h1>
231
+
109
232
  <p class="meta">
110
- <time datetime="2013-03-19T09:00:00-04:00" pubdate data-updated="true">Mar 19<span>th</span>, 2013</time>
233
+
234
+ <time datetime="2013-03-19T09:00:00-04:00" pubdate data-updated="true">Mar
235
+ 19<span>th</span>, 2013</time>
236
+
111
237
  </p>
238
+
112
239
  </header>
113
- <div class="entry-content"><p>You probably spend a lot of time in IRB (or the Rails console) but have you
114
- taken the time to customize it? Today we&#8217;ll take a look at the things I&#8217;ve
115
- added to mine, and I&#8217;ll show you how to hack in a .irbrc_rails that&#8217;s only loaded
240
+
241
+ <div class="entry-content"><p>You probably spend a lot of time in IRB (or
242
+ the Rails console) but have you
243
+
244
+ taken the time to customize it? Today we&#8217;ll take a look at the things
245
+ I&#8217;ve
246
+
247
+ added to mine, and I&#8217;ll show you how to hack in a .irbrc_rails that&#8217;s
248
+ only loaded
249
+
116
250
  in the Rails console.</p>
251
+
117
252
  </div>
253
+
118
254
  <footer>
255
+
119
256
  <a rel="full-article" href="/blog/customize-your-irb/">Read on &rarr;</a>
257
+
120
258
  </footer>
259
+
121
260
  </article>
261
+
122
262
  <article>
263
+
123
264
  <header>
124
- <h1 class="entry-title"><a href="/blog/program-like-a-videogamer/">Program Like a Videogamer</a></h1>
265
+
266
+ <h1 class="entry-title"><a href="/blog/program-like-a-videogamer/">Program
267
+ Like a Videogamer</a></h1>
268
+
125
269
  <p class="meta">
126
- <time datetime="2013-02-06T09:01:00-05:00" pubdate data-updated="true">Feb 6<span>th</span>, 2013</time>
270
+
271
+ <time datetime="2013-02-06T09:01:00-05:00" pubdate data-updated="true">Feb
272
+ 6<span>th</span>, 2013</time>
273
+
127
274
  </p>
275
+
128
276
  </header>
129
- <div class="entry-content"><p>I see a lot of you out there worried about the next step in your programming
130
- career. Or even worried about the next step when learning a new framework or
277
+
278
+ <div class="entry-content"><p>I see a lot of you out there worried about the
279
+ next step in your programming
280
+
281
+ career. Or even worried about the next step when learning a new framework
282
+ or
283
+
131
284
  language. Today let me try to assuage some of that fear by describing my approach.</p>
285
+
132
286
  </div>
287
+
133
288
  <footer>
289
+
134
290
  <a rel="full-article" href="/blog/program-like-a-videogamer/">Read on &rarr;</a>
291
+
135
292
  </footer>
293
+
136
294
  </article>
295
+
137
296
  <article>
297
+
138
298
  <header>
139
- <h1 class="entry-title"><a href="/blog/gem-spotlight-interactive-editor/">Gem Spotlight: Interactive_editor</a></h1>
299
+
300
+ <h1 class="entry-title"><a href="/blog/gem-spotlight-interactive-editor/">Gem
301
+ Spotlight: Interactive_editor</a></h1>
302
+
140
303
  <p class="meta">
141
- <time datetime="2013-01-04T12:13:00-05:00" pubdate data-updated="true">Jan 4<span>th</span>, 2013</time>
304
+
305
+ <time datetime="2013-01-04T12:13:00-05:00" pubdate data-updated="true">Jan
306
+ 4<span>th</span>, 2013</time>
307
+
142
308
  </p>
309
+
143
310
  </header>
144
- <div class="entry-content"><p>Today we&#8217;ll take a quick look at one of my favorite gems: interactive_editor.
311
+
312
+ <div class="entry-content"><p>Today we&#8217;ll take a quick look at one of
313
+ my favorite gems: interactive_editor.
314
+
145
315
  Have you ever been in a REPL session (rails console, irb, pry, etc.) and wished
316
+
146
317
  that you could pop open a full editor to write out some code? (Ok, maybe not
147
- you pry users.) Well interactive_editor is a gem that gives you just that, as
318
+
319
+ you pry users.) Well interactive_editor is a gem that gives you just that,
320
+ as
321
+
148
322
  well as some really nice object inspection and manipulation.</p>
323
+
149
324
  </div>
325
+
150
326
  <footer>
151
- <a rel="full-article" href="/blog/gem-spotlight-interactive-editor/">Read on &rarr;</a>
327
+
328
+ <a rel="full-article" href="/blog/gem-spotlight-interactive-editor/">Read
329
+ on &rarr;</a>
330
+
152
331
  </footer>
332
+
153
333
  </article>
334
+
154
335
  <article>
336
+
155
337
  <header>
156
- <h1 class="entry-title"><a href="/blog/subscribing-to-rubytapas-using-downcast/">Subscribing to RubyTapas Using Downcast</a></h1>
338
+
339
+ <h1 class="entry-title"><a href="/blog/subscribing-to-rubytapas-using-downcast/">Subscribing
340
+ to RubyTapas Using Downcast</a></h1>
341
+
157
342
  <p class="meta">
158
- <time datetime="2012-10-19T23:17:00-04:00" pubdate data-updated="true">Oct 19<span>th</span>, 2012</time>
343
+
344
+ <time datetime="2012-10-19T23:17:00-04:00" pubdate data-updated="true">Oct
345
+ 19<span>th</span>, 2012</time>
346
+
159
347
  </p>
348
+
160
349
  </header>
161
- <div class="entry-content"><p>Avdi&#8217;s <a href="http://devblog.avdi.org/rubytapas/">Ruby Tapas</a> are a fantastic
350
+
351
+ <div class="entry-content"><p>Avdi&#8217;s <a href="http://devblog.avdi.org/rubytapas/">Ruby
352
+ Tapas</a> are a fantastic
353
+
162
354
  resource for learning pieces of Ruby. Now that he and DPD have enabled
163
- iTunes-compatible RSS feeds of the videos it&#8217;s easier than ever to stay current
355
+
356
+ iTunes-compatible RSS feeds of the videos it&#8217;s easier than ever to stay
357
+ current
358
+
164
359
  with the videos.</p>
165
- <p>Today I&#8217;m just going to share the steps required to add Ruby Tapas to Downcast
166
- on your iPhone or iPad. It&#8217;s very easy, but it&#8217;s handy to have all the steps
360
+
361
+ <p>Today I&#8217;m just going to share the steps required to add Ruby Tapas
362
+ to Downcast
363
+
364
+ on your iPhone or iPad. It&#8217;s very easy, but it&#8217;s handy to have
365
+ all the steps
366
+
167
367
  in one place.</p>
368
+
168
369
  </div>
370
+
169
371
  <footer>
170
- <a rel="full-article" href="/blog/subscribing-to-rubytapas-using-downcast/">Read on &rarr;</a>
372
+
373
+ <a rel="full-article" href="/blog/subscribing-to-rubytapas-using-downcast/">Read
374
+ on &rarr;</a>
375
+
171
376
  </footer>
377
+
172
378
  </article>
379
+
173
380
  <article>
381
+
174
382
  <header>
175
- <h1 class="entry-title"><a href="/blog/things-most-interviewees-fail-to-discover/">Things Most Interviewees Fail to Discover</a></h1>
383
+
384
+ <h1 class="entry-title"><a href="/blog/things-most-interviewees-fail-to-discover/">Things
385
+ Most Interviewees Fail to Discover</a></h1>
386
+
176
387
  <p class="meta">
177
- <time datetime="2012-08-17T08:53:00-04:00" pubdate data-updated="true">Aug 17<span>th</span>, 2012</time>
388
+
389
+ <time datetime="2012-08-17T08:53:00-04:00" pubdate data-updated="true">Aug
390
+ 17<span>th</span>, 2012</time>
391
+
178
392
  </p>
393
+
179
394
  </header>
180
- <div class="entry-content"><p>It&#8217;s a great time to be a Rails developer. Companies left and right are turning to Rails or using it already for efficient web development. If you know Rails and the web stack well then you have the luxury of choice: let&#8217;s make sure you make a good pick!</p>
395
+
396
+ <div class="entry-content"><p>It&#8217;s a great time to be a Rails developer.
397
+ Companies left and right are turning to Rails or using it already for efficient
398
+ web development. If you know Rails and the web stack well then you have the
399
+ luxury of choice: let&#8217;s make sure you make a good pick!</p>
400
+
181
401
  </div>
402
+
182
403
  <footer>
183
- <a rel="full-article" href="/blog/things-most-interviewees-fail-to-discover/">Read on &rarr;</a>
404
+
405
+ <a rel="full-article" href="/blog/things-most-interviewees-fail-to-discover/">Read
406
+ on &rarr;</a>
407
+
184
408
  </footer>
409
+
185
410
  </article>
411
+
186
412
  <article>
413
+
187
414
  <header>
188
- <h1 class="entry-title"><a href="/blog/10-things-i-love-about-git/">10 Things I Love About Git</a></h1>
415
+
416
+ <h1 class="entry-title"><a href="/blog/10-things-i-love-about-git/">10 Things
417
+ I Love About Git</a></h1>
418
+
189
419
  <p class="meta">
190
- <time datetime="2012-08-07T09:29:00-04:00" pubdate data-updated="true">Aug 7<span>th</span>, 2012</time>
420
+
421
+ <time datetime="2012-08-07T09:29:00-04:00" pubdate data-updated="true">Aug
422
+ 7<span>th</span>, 2012</time>
423
+
191
424
  </p>
425
+
192
426
  </header>
193
- <div class="entry-content"><p>Not everyone loves git. It&#8217;s true! But I do, and here are some reasons why.</p>
427
+
428
+ <div class="entry-content"><p>Not everyone loves git. It&#8217;s true! But
429
+ I do, and here are some reasons why.</p>
430
+
194
431
  </div>
432
+
195
433
  <footer>
434
+
196
435
  <a rel="full-article" href="/blog/10-things-i-love-about-git/">Read on &rarr;</a>
436
+
197
437
  </footer>
438
+
198
439
  </article>
440
+
199
441
  <article>
442
+
200
443
  <header>
201
- <h1 class="entry-title"><a href="/blog/effective-window-management-by-dividing-your-monitor-into-zones/">Effective Window Management by Dividing Your Monitor Into Zones</a></h1>
444
+
445
+ <h1 class="entry-title"><a href="/blog/effective-window-management-by-dividing-your-monitor-into-zones/">Effective
446
+ Window Management by Dividing Your Monitor Into Zones</a></h1>
447
+
202
448
  <p class="meta">
203
- <time datetime="2012-06-22T09:21:00-04:00" pubdate data-updated="true">Jun 22<span>nd</span>, 2012</time>
449
+
450
+ <time datetime="2012-06-22T09:21:00-04:00" pubdate data-updated="true">Jun
451
+ 22<span>nd</span>, 2012</time>
452
+
204
453
  </p>
454
+
205
455
  </header>
206
- <div class="entry-content"><p>I love my 27 inch Apple Thunderbolt display, but after some amount of neck strain I had to conclude that it&#8217;s just too big to use it like a laptop monitor and fullscreen everything.</p>
207
- <p>Instead, I&#8217;ve come up with a great window management solution that capitalizes on the monitor&#8217;s strengths and gives me an awesome work environment.</p>
456
+
457
+ <div class="entry-content"><p>I love my 27 inch Apple Thunderbolt display,
458
+ but after some amount of neck strain I had to conclude that it&#8217;s just
459
+ too big to use it like a laptop monitor and fullscreen everything.</p>
460
+
461
+ <p>Instead, I&#8217;ve come up with a great window management solution that
462
+ capitalizes on the monitor&#8217;s strengths and gives me an awesome work
463
+ environment.</p>
464
+
208
465
  </div>
466
+
209
467
  <footer>
210
- <a rel="full-article" href="/blog/effective-window-management-by-dividing-your-monitor-into-zones/">Read on &rarr;</a>
468
+
469
+ <a rel="full-article" href="/blog/effective-window-management-by-dividing-your-monitor-into-zones/">Read
470
+ on &rarr;</a>
471
+
211
472
  </footer>
473
+
212
474
  </article>
475
+
213
476
  <article>
477
+
214
478
  <header>
215
- <h1 class="entry-title"><a href="/blog/getting-up-to-speed-on-a-new-git-repo/">Getting Up to Speed on a New Git Repo</a></h1>
479
+
480
+ <h1 class="entry-title"><a href="/blog/getting-up-to-speed-on-a-new-git-repo/">Getting
481
+ Up to Speed on a New Git Repo</a></h1>
482
+
216
483
  <p class="meta">
217
- <time datetime="2012-05-11T12:44:00-04:00" pubdate data-updated="true">May 11<span>th</span>, 2012</time>
484
+
485
+ <time datetime="2012-05-11T12:44:00-04:00" pubdate data-updated="true">May
486
+ 11<span>th</span>, 2012</time>
487
+
218
488
  </p>
489
+
219
490
  </header>
220
- <div class="entry-content"><p>Alright! You want to get up to speed with a new git repository? You got it. Here are some quick reference notes and tools to use to see what&#8217;s been going on.</p>
491
+
492
+ <div class="entry-content"><p>Alright! You want to get up to speed with a
493
+ new git repository? You got it. Here are some quick reference notes and tools
494
+ to use to see what&#8217;s been going on.</p>
495
+
221
496
  </div>
497
+
222
498
  <footer>
223
- <a rel="full-article" href="/blog/getting-up-to-speed-on-a-new-git-repo/">Read on &rarr;</a>
499
+
500
+ <a rel="full-article" href="/blog/getting-up-to-speed-on-a-new-git-repo/">Read
501
+ on &rarr;</a>
502
+
224
503
  </footer>
504
+
225
505
  </article>
226
- <article>
227
- <header>
228
- <h1 class="entry-title"><a href="/blog/new-post-coming-soon/">New Post Coming Soon</a></h1>
229
- <p class="meta">
230
- <time datetime="2012-05-08T13:39:00-04:00" pubdate data-updated="true">May 8<span>th</span>, 2012</time>
231
- </p>
232
- </header>
233
- <div class="entry-content"><p>Sorry that Rake Routes has been silent these past weeks. All at once I&#8217;ve been busy with a couple of other projects:</p>
234
- <ul>
235
- <li>a new job with the fine folks at <a href="http://phishme.com">PhishMe</a></li>
236
- <li>the birth of our new baby girl. <a href="/images/marie.jpg">Aww</a></li>
237
- </ul>
238
- <p>I&#8217;m starting to get things settled into a new routine, so I&#8217;m finally carving out time to blog again!</p>
239
- <p>I&#8217;ve got a new post coming soon on getting up to speed on a new git repository. This is useful for when you want start contributing to a new project or you&#8217;re starting a new job and want to get the lay of the land. Look for it this week!</p>
240
- </div>
241
- </article>
506
+
242
507
  <div class="pagination">
508
+
243
509
  <a class="prev" href="/blog/page/2/">&larr; Older</a>
510
+
244
511
  <a href="/blog/archives">Blog Archives</a>
512
+
245
513
  </div>
514
+
246
515
  </div>
516
+
247
517
  <aside class="sidebar">
518
+
248
519
  <section>
520
+
249
521
  <h1>Recent Posts</h1>
522
+
250
523
  <ul id="recent_posts">
524
+
251
525
  <li class="post">
526
+
527
+ <a href="/blog/lets-use-hwacha-to-scan-urls/">Let&#8217;s Use Hwacha to Scan
528
+ URLs</a>
529
+
530
+ </li>
531
+
532
+ <li class="post">
533
+
252
534
  <a href="/blog/deliberate-git/">Deliberate Git</a>
535
+
253
536
  </li>
537
+
254
538
  <li class="post">
539
+
255
540
  <a href="/blog/customize-your-irb/">Customize your IRB</a>
541
+
256
542
  </li>
543
+
257
544
  <li class="post">
545
+
258
546
  <a href="/blog/program-like-a-videogamer/">Program like a Videogamer</a>
547
+
259
548
  </li>
549
+
260
550
  <li class="post">
551
+
261
552
  <a href="/blog/gem-spotlight-interactive-editor/">Gem spotlight: interactive_editor</a>
553
+
262
554
  </li>
263
- <li class="post">
264
- <a href="/blog/subscribing-to-rubytapas-using-downcast/">Subscribing to RubyTapas using Downcast</a>
265
- </li>
555
+
266
556
  </ul>
557
+
267
558
  </section>
559
+
268
560
  <section>
561
+
269
562
  <h1>About Me</h1>
563
+
270
564
  <img class="right" src="http://gravatar.com/avatar/aaa2b1f12b65d33422e8cdc48d70c0f9">
565
+
271
566
  <p>My name is Stephen Ball. I started programming computers back in the 80s
567
+
272
568
  by copying BASIC programs from 3-2-1 Contact into our Atari 800. Now I
569
+
273
570
  program web applications using Ruby on Rails and CoffeeScript. I love every
571
+
274
572
  minute of it.</p>
275
- <p><a href="https://twitter.com/StephenBallNC" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @StephenBallNC</a>
573
+
574
+ <p><a href="https://twitter.com/StephenBallNC" class="twitter-follow-button"
575
+ data-show-count="false" data-size="large">Follow @StephenBallNC</a>
576
+
276
577
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></p>
578
+
277
579
  </section>
580
+
278
581
  <section>
582
+
279
583
  <h1>Tweets for Rake Routes</h1>
280
- <a class="twitter-timeline" href="https://twitter.com/search?q=rakeroutes" data-widget-id="395243196042579970">Tweets about &#8220;rakeroutes&#8221;</a>
281
- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
584
+
585
+ <a class="twitter-timeline" href="https://twitter.com/search?q=rakeroutes"
586
+ data-widget-id="395243196042579970">Tweets about &#8220;rakeroutes&#8221;</a>
587
+
588
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?''http'':''https'';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
589
+
282
590
  </section>
591
+
283
592
  <section>
593
+
284
594
  <h1>My Pinboard</h1>
595
+
285
596
  <ul id="pinboard_linkroll">Fetching linkroll&#8230;</ul>
597
+
286
598
  <p><a href="http://pinboard.in/u:xyzzyb">My Pinboard Bookmarks &raquo;</a></p>
599
+
287
600
  </section>
288
- <script type="text/javascript">var linkroll='pinboard_linkroll';var pinboard_user="xyzzyb";var pinboard_count=3;(function(){var pinboardInit=document.createElement('script');pinboardInit.type='text/javascript';pinboardInit.async=true;pinboardInit.src='/javascripts/pinboard.js';document.getElementsByTagName('head')[0].appendChild(pinboardInit);})();</script>
601
+
602
+ <script type="text/javascript">var linkroll=''pinboard_linkroll'';var pinboard_user="xyzzyb";var
603
+ pinboard_count=3;(function(){var pinboardInit=document.createElement(''script'');pinboardInit.type=''text/javascript'';pinboardInit.async=true;pinboardInit.src=''/javascripts/pinboard.js'';document.getElementsByTagName(''head'')[0].appendChild(pinboardInit);})();</script>
604
+
289
605
  </aside>
606
+
290
607
  </div>
608
+
291
609
  </div>
610
+
292
611
  <footer role="contentinfo"><p>
612
+
293
613
  Copyright &copy; 2013 - Stephen Ball -
614
+
294
615
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
616
+
295
617
  </p>
618
+
296
619
  </footer>
297
- <script type="text/javascript">var disqus_shortname='xyzzyb';var disqus_script='count.js';(function(){var dsq=document.createElement('script');dsq.type='text/javascript';dsq.async=true;dsq.src='http://'+disqus_shortname+'.disqus.com/'+disqus_script;(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(dsq);}());</script>
620
+
621
+ <script type="text/javascript">var disqus_shortname=''xyzzyb'';var disqus_script=''count.js'';(function(){var
622
+ dsq=document.createElement(''script'');dsq.type=''text/javascript'';dsq.async=true;dsq.src=''http://''+disqus_shortname+''.disqus.com/''+disqus_script;(document.getElementsByTagName(''head'')[0]||document.getElementsByTagName(''body'')[0]).appendChild(dsq);}());</script>
623
+
298
624
  <div id="fb-root"></div>
625
+
299
626
  <script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}
300
- js=d.createElement(s);js.id=id;js.src="//connect.facebook.net/en_US/all.js#appId=212934732101925&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
301
- <script type="text/javascript">(function(){var script=document.createElement('script');script.type='text/javascript';script.async=true;script.src='https://apis.google.com/js/plusone.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(script,s);})();</script>
302
- <script type="text/javascript">(function(){var twitterWidgets=document.createElement('script');twitterWidgets.type='text/javascript';twitterWidgets.async=true;twitterWidgets.src='http://platform.twitter.com/widgets.js';document.getElementsByTagName('head')[0].appendChild(twitterWidgets);})();</script>
303
- <a title="Real Time Analytics" href="http://getclicky.com/66509312"><img alt="Real Time Analytics" src="//static.getclicky.com/media/links/badge.gif" border="0"/></a>
304
- <script type="text/javascript">var clicky_site_ids=clicky_site_ids||[];clicky_site_ids.push(66536397);(function(){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src='//static.getclicky.com/js';(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(s);})();</script>
627
+
628
+ js=d.createElement(s);js.id=id;js.src="//connect.facebook.net/en_US/all.js#appId=212934732101925&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,''script'',''facebook-jssdk''));</script>
629
+
630
+ <script type="text/javascript">(function(){var script=document.createElement(''script'');script.type=''text/javascript'';script.async=true;script.src=''https://apis.google.com/js/plusone.js'';var
631
+ s=document.getElementsByTagName(''script'')[0];s.parentNode.insertBefore(script,s);})();</script>
632
+
633
+ <script type="text/javascript">(function(){var twitterWidgets=document.createElement(''script'');twitterWidgets.type=''text/javascript'';twitterWidgets.async=true;twitterWidgets.src=''http://platform.twitter.com/widgets.js'';document.getElementsByTagName(''head'')[0].appendChild(twitterWidgets);})();</script>
634
+
635
+ <a title="Real Time Analytics" href="http://getclicky.com/66509312"><img alt="Real
636
+ Time Analytics" src="//static.getclicky.com/media/links/badge.gif" border="0"/></a>
637
+
638
+ <script type="text/javascript">var clicky_site_ids=clicky_site_ids||[];clicky_site_ids.push(66536397);(function(){var
639
+ s=document.createElement(''script'');s.type=''text/javascript'';s.async=true;s.src=''//static.getclicky.com/js'';(document.getElementsByTagName(''head'')[0]||document.getElementsByTagName(''body'')[0]).appendChild(s);})();</script>
640
+
305
641
  </body>
642
+
306
643
  </html>
644
+
645
+ '
307
646
  http_version: '1.1'
308
647
  adapter_metadata:
309
- effective_url: HTTP://rakeroutes.com/
310
- recorded_at: Tue, 03 Dec 2013 06:07:19 GMT
648
+ effective_url: !binary |-
649
+ aHR0cDovL3Jha2Vyb3V0ZXMuY29tLw==
650
+ recorded_at: Mon, 13 Jan 2014 01:16:12 GMT
311
651
  recorded_with: VCR 2.8.0