hwacha 0.2.0 → 0.3.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.
- checksums.yaml +5 -13
- data/.gitignore +3 -0
- data/Gemfile.lock +1 -1
- data/lib/hwacha.rb +7 -3
- data/lib/hwacha/config.rb +11 -0
- data/lib/hwacha/version.rb +1 -1
- data/spec/fixtures/cassettes/{url_with_404_response.yml → 404_url.yml} +20 -9
- data/spec/fixtures/cassettes/{url_with_success_response.yml → success_url.yml} +429 -89
- data/spec/integration/hwacha_spec.rb +36 -0
- data/spec/lib/hwacha/config_spec.rb +26 -0
- data/spec/lib/hwacha_spec.rb +69 -52
- metadata +21 -21
- data/spec/fixtures/cassettes/not_a_url.yml +0 -24
- data/spec/fixtures/cassettes/various_urls.yml +0 -372
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YTM0YzExNWNiN2M0OTFlM2RiOGUwZTlhZTE0ZTc2YzY1ZWFlMTBlYQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e92a5b7c5af09c2564fa63ee249a62af4d580015
|
4
|
+
data.tar.gz: 70467fdde11f3e5eaed904578b8971adb49801d4
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
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
data/Gemfile.lock
CHANGED
data/lib/hwacha.rb
CHANGED
@@ -3,7 +3,7 @@ require "hwacha/config"
|
|
3
3
|
require "typhoeus"
|
4
4
|
|
5
5
|
class Hwacha
|
6
|
-
attr_reader :
|
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
|
-
@
|
17
|
+
@config = config
|
18
18
|
end
|
19
19
|
|
20
20
|
def check(urls)
|
21
|
-
hydra =
|
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
|
data/lib/hwacha/config.rb
CHANGED
@@ -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
|
data/lib/hwacha/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: rakeroutes.com/this-
|
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
|
-
-
|
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
|
-
- '
|
24
|
+
- '341'
|
25
25
|
Content-Type:
|
26
26
|
- text/html; charset=iso-8859-1
|
27
27
|
body:
|
28
|
-
encoding:
|
29
|
-
string:
|
30
|
-
|
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
|
-
|
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:
|
42
|
-
|
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
|
-
-
|
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
|
-
- '
|
30
|
+
- '14856'
|
31
31
|
Content-Type:
|
32
32
|
- text/html
|
33
33
|
body:
|
34
|
-
encoding:
|
35
|
-
string:
|
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
|
-
|
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
|
-
|
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
|
-
|
52
|
-
<link href="http://rakeroutes.com/
|
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
|
-
|
56
|
-
<
|
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
|
-
|
59
|
-
<link href="http://fonts.googleapis.com/css?family=PT+
|
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
|
-
|
71
|
-
<li><a onclick="clicky.goal('
|
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&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’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’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’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 →</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
|
-
|
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
|
-
|
95
|
-
<p>
|
96
|
-
|
195
|
+
|
196
|
+
<div class="entry-content"><p>Hello Internet! Here’s my talk “Deliberate
|
197
|
+
Git” in blog post form.</p>
|
198
|
+
|
199
|
+
<p>There’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’d like to just read the slides they’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
|
-
|
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
|
-
|
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 →</a>
|
220
|
+
|
104
221
|
</footer>
|
222
|
+
|
105
223
|
</article>
|
224
|
+
|
106
225
|
<article>
|
226
|
+
|
107
227
|
<header>
|
108
|
-
|
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
|
-
|
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
|
-
|
114
|
-
|
115
|
-
|
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’ll take a look at the things
|
245
|
+
I’ve
|
246
|
+
|
247
|
+
added to mine, and I’ll show you how to hack in a .irbrc_rails that’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 →</a>
|
257
|
+
|
120
258
|
</footer>
|
259
|
+
|
121
260
|
</article>
|
261
|
+
|
122
262
|
<article>
|
263
|
+
|
123
264
|
<header>
|
124
|
-
|
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
|
-
|
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
|
-
|
130
|
-
|
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 →</a>
|
291
|
+
|
135
292
|
</footer>
|
293
|
+
|
136
294
|
</article>
|
295
|
+
|
137
296
|
<article>
|
297
|
+
|
138
298
|
<header>
|
139
|
-
|
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
|
-
|
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
|
-
|
311
|
+
|
312
|
+
<div class="entry-content"><p>Today we’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
|
-
|
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
|
-
|
327
|
+
|
328
|
+
<a rel="full-article" href="/blog/gem-spotlight-interactive-editor/">Read
|
329
|
+
on →</a>
|
330
|
+
|
152
331
|
</footer>
|
332
|
+
|
153
333
|
</article>
|
334
|
+
|
154
335
|
<article>
|
336
|
+
|
155
337
|
<header>
|
156
|
-
|
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
|
-
|
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
|
-
|
350
|
+
|
351
|
+
<div class="entry-content"><p>Avdi’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
|
-
|
355
|
+
|
356
|
+
iTunes-compatible RSS feeds of the videos it’s easier than ever to stay
|
357
|
+
current
|
358
|
+
|
164
359
|
with the videos.</p>
|
165
|
-
|
166
|
-
|
360
|
+
|
361
|
+
<p>Today I’m just going to share the steps required to add Ruby Tapas
|
362
|
+
to Downcast
|
363
|
+
|
364
|
+
on your iPhone or iPad. It’s very easy, but it’s handy to have
|
365
|
+
all the steps
|
366
|
+
|
167
367
|
in one place.</p>
|
368
|
+
|
168
369
|
</div>
|
370
|
+
|
169
371
|
<footer>
|
170
|
-
|
372
|
+
|
373
|
+
<a rel="full-article" href="/blog/subscribing-to-rubytapas-using-downcast/">Read
|
374
|
+
on →</a>
|
375
|
+
|
171
376
|
</footer>
|
377
|
+
|
172
378
|
</article>
|
379
|
+
|
173
380
|
<article>
|
381
|
+
|
174
382
|
<header>
|
175
|
-
|
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
|
-
|
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
|
-
|
395
|
+
|
396
|
+
<div class="entry-content"><p>It’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’s make sure you make a good pick!</p>
|
400
|
+
|
181
401
|
</div>
|
402
|
+
|
182
403
|
<footer>
|
183
|
-
|
404
|
+
|
405
|
+
<a rel="full-article" href="/blog/things-most-interviewees-fail-to-discover/">Read
|
406
|
+
on →</a>
|
407
|
+
|
184
408
|
</footer>
|
409
|
+
|
185
410
|
</article>
|
411
|
+
|
186
412
|
<article>
|
413
|
+
|
187
414
|
<header>
|
188
|
-
|
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
|
-
|
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
|
-
|
427
|
+
|
428
|
+
<div class="entry-content"><p>Not everyone loves git. It’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 →</a>
|
436
|
+
|
197
437
|
</footer>
|
438
|
+
|
198
439
|
</article>
|
440
|
+
|
199
441
|
<article>
|
442
|
+
|
200
443
|
<header>
|
201
|
-
|
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
|
-
|
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
|
-
|
207
|
-
<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’s just
|
459
|
+
too big to use it like a laptop monitor and fullscreen everything.</p>
|
460
|
+
|
461
|
+
<p>Instead, I’ve come up with a great window management solution that
|
462
|
+
capitalizes on the monitor’s strengths and gives me an awesome work
|
463
|
+
environment.</p>
|
464
|
+
|
208
465
|
</div>
|
466
|
+
|
209
467
|
<footer>
|
210
|
-
|
468
|
+
|
469
|
+
<a rel="full-article" href="/blog/effective-window-management-by-dividing-your-monitor-into-zones/">Read
|
470
|
+
on →</a>
|
471
|
+
|
211
472
|
</footer>
|
473
|
+
|
212
474
|
</article>
|
475
|
+
|
213
476
|
<article>
|
477
|
+
|
214
478
|
<header>
|
215
|
-
|
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
|
-
|
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
|
-
|
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’s been going on.</p>
|
495
|
+
|
221
496
|
</div>
|
497
|
+
|
222
498
|
<footer>
|
223
|
-
|
499
|
+
|
500
|
+
<a rel="full-article" href="/blog/getting-up-to-speed-on-a-new-git-repo/">Read
|
501
|
+
on →</a>
|
502
|
+
|
224
503
|
</footer>
|
504
|
+
|
225
505
|
</article>
|
226
|
-
|
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’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’m starting to get things settled into a new routine, so I’m finally carving out time to blog again!</p>
|
239
|
-
<p>I’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’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/">← 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’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
|
-
|
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
|
-
|
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
|
-
|
281
|
-
<
|
584
|
+
|
585
|
+
<a class="twitter-timeline" href="https://twitter.com/search?q=rakeroutes"
|
586
|
+
data-widget-id="395243196042579970">Tweets about “rakeroutes”</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…</ul>
|
597
|
+
|
286
598
|
<p><a href="http://pinboard.in/u:xyzzyb">My Pinboard Bookmarks »</a></p>
|
599
|
+
|
287
600
|
</section>
|
288
|
-
|
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 © 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
|
-
|
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
|
-
|
301
|
-
|
302
|
-
|
303
|
-
<
|
304
|
-
|
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:
|
310
|
-
|
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
|