extractula 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +0 -0
- data/lib/extractula/dom_extractor.rb +68 -0
- data/lib/extractula/extracted_content.rb +32 -0
- data/lib/extractula.rb +24 -0
- data/spec/extractula/dom_extractor_spec.rb +109 -0
- data/spec/extractula/extracted_content_spec.rb +48 -0
- data/spec/extractula_spec.rb +45 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/test-files/10-stunning-web-site-prototype-sketches.html +986 -0
- data/spec/test-files/nytimes.html +1967 -0
- data/spec/test-files/nytimes_story.html +1112 -0
- data/spec/test-files/totlol-youtube.html +563 -0
- data/spec/test-files/typhoeus-the-best-ruby-http-client-just-got-better.html +576 -0
- data/spec/test-files/ustream-new-years-eve.html +840 -0
- data/spec/test-files/weather-channel-marriage-proposal-touching-with-a-chance-of-viral-status-video.html +949 -0
- metadata +79 -0
@@ -0,0 +1,576 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<meta name="generator" content="http://www.typepad.com/" />
|
7
|
+
|
8
|
+
<meta name="description" content="I've been quietly working on Typhoeus for the last few months. With the help of Wilson Bilkovich and David Balatero I've finished what I think is a significant improvement to the library. The new interface removes all the magic and..." />
|
9
|
+
<link rel="stylesheet" href="http://www.pauldix.net/styles.css?v=2" type="text/css" media="screen" />
|
10
|
+
<link rel="stylesheet" href="/.shared/themes/common/print.css" type="text/css" media="print" />
|
11
|
+
<link rel="alternate" type="application/atom+xml" title="Posts on 'Paul Dix Explains Nothing' (Atom)" href="http://www.pauldix.net/atom.xml" />
|
12
|
+
<link rel="alternate" type="application/rss+xml" title="Posts on 'Paul Dix Explains Nothing' (RSS 1.0)" href="http://www.pauldix.net/index.rdf" />
|
13
|
+
<link rel="alternate" type="application/rss+xml" title="Posts on 'Paul Dix Explains Nothing' (RSS 2.0)" href="http://www.pauldix.net/rss.xml" />
|
14
|
+
<script type="text/javascript">
|
15
|
+
var TPApp = {};
|
16
|
+
TPApp.app_uri = "http://www.typepad.com/";
|
17
|
+
</script>
|
18
|
+
<script type="text/javascript" src="/.shared/js/yui/yahoo-dom-event.js"></script>
|
19
|
+
<script type="text/javascript" src="/.shared/js/app/thumbnail-gallery-min.js"></script>
|
20
|
+
<script type="text/javascript" src="/.shared/js/app/flyouts.js"></script>
|
21
|
+
|
22
|
+
<title>Paul Dix Explains Nothing: Typhoeus, the best Ruby HTTP client just got better</title>
|
23
|
+
<link rel="start" href="http://www.pauldix.net/" title="Home" />
|
24
|
+
<link rel="prev" href="http://www.pauldix.net/2009/10/bypassing-wxwidgets-error-when-building-erlang-from-source-on-os-x.html?no_prefetch=1" title="Bypassing wxWidgets error when building Erlang from Source on OS X" />
|
25
|
+
<link rel="next" href="http://www.pauldix.net/2009/11/resources-for-synchronous-reads-asynchronous-writes-at-rubyconf-2009.html?no_prefetch=1" title="Resources for Synchronous Reads, Asynchronous Writes at RubyConf 2009" />
|
26
|
+
|
27
|
+
</head>
|
28
|
+
|
29
|
+
<body class="layout-two-column-right">
|
30
|
+
|
31
|
+
<div id="container">
|
32
|
+
<div id="container-inner" class="pkg">
|
33
|
+
|
34
|
+
<!-- banner -->
|
35
|
+
<div id="banner">
|
36
|
+
<div id="banner-inner" class="pkg">
|
37
|
+
|
38
|
+
<h1 id="banner-header"><a href="http://www.pauldix.net/" accesskey="1">Paul Dix Explains Nothing</a></h1>
|
39
|
+
<h2 id="banner-description">Entrepreneurship, programming, software development, politics, NYC, and random thoughts.</h2>
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
<div id="pagebody">
|
46
|
+
<div id="pagebody-inner" class="pkg">
|
47
|
+
<div id="alpha">
|
48
|
+
<div id="alpha-inner" class="pkg">
|
49
|
+
<!-- content nav -->
|
50
|
+
<p class="content-nav">
|
51
|
+
<a href="http://www.pauldix.net/2009/10/bypassing-wxwidgets-error-when-building-erlang-from-source-on-os-x.html">« Bypassing wxWidgets error when building Erlang from Source on OS X</a> |
|
52
|
+
<a href="http://www.pauldix.net/">Main</a>
|
53
|
+
| <a href="http://www.pauldix.net/2009/11/resources-for-synchronous-reads-asynchronous-writes-at-rubyconf-2009.html">Resources for Synchronous Reads, Asynchronous Writes at RubyConf 2009 »</a>
|
54
|
+
</p>
|
55
|
+
|
56
|
+
<!-- entry -->
|
57
|
+
<h2 class="date-header">October 29, 2009</h2>
|
58
|
+
|
59
|
+
|
60
|
+
<div class="entry-author-paul_dix entry-type-post entry" id="entry-6a00d8341f4a0d53ef0120a6340f31970b">
|
61
|
+
<h3 class="entry-header">Typhoeus, the best Ruby HTTP client just got better</h3>
|
62
|
+
|
63
|
+
<div class="entry-content">
|
64
|
+
<div class="entry-body">
|
65
|
+
<p>I've been quietly working on Typhoeus for the last few months. With the help of <a href="http://metaclass.org/">Wilson Bilkovich</a> and <a href="http://github.com/dbalatero">David Balatero</a> I've finished what I think is a significant improvement to the library. The new interface removes all the magic and opts instead for clarity.</p><p>It's really slick and includes improved stubing support, caching, memoization, and (of course) parallelism. The <a href="http://github.com/pauldix/typhoeus/">Typhoeus readme</a> highlights all of the awesomeness. It should be noted that the old interface of including Typhoeus into classes and defining remote methods has been deprecated. I'll be removing that sometime in the next six months.</p><p>In addition to thanking everyone using the library and everyone contributing, I should also thank my employer kgbweb. If you're a solid Rubyist that likes parsing, crawling, and stuff, or a machine learning guy, or a Solr/Lucene/indexing bad ass, let me know. We need you and we're doing some crazy awesome stuff.</p>
|
66
|
+
</div>
|
67
|
+
|
68
|
+
<script src="http://feeds.feedburner.com/~s/PaulDixExplainsNothing?i=http%3A%2F%2Fwww.pauldix.net%2F2009%2F10%2Ftyphoeus-the-best-ruby-http-client-just-got-better.html" type="text/javascript"></script>
|
69
|
+
|
70
|
+
</div>
|
71
|
+
<div class="entry-footer">
|
72
|
+
<p class="entry-footer-info">
|
73
|
+
<span class="post-footers">October 29, 2009 at 12:29 PM </span> <span class="separator">|</span> <a class="permalink" href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html">Permalink</a>
|
74
|
+
</p>
|
75
|
+
|
76
|
+
<!-- technorati tags -->
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
<!-- post footer links -->
|
81
|
+
|
82
|
+
</div>
|
83
|
+
</div>
|
84
|
+
|
85
|
+
<div class="trackbacks">
|
86
|
+
<a id="trackback"></a>
|
87
|
+
<h3 class="trackbacks-header">TrackBack</h3>
|
88
|
+
<div class="trackbacks-info">
|
89
|
+
<p>TrackBack URL for this entry:<br /><span class="trackbacks-link">http://www.typepad.com/services/trackback/6a00d8341f4a0d53ef0120a6340f31970b</span></p>
|
90
|
+
<p>Listed below are links to weblogs that reference <a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html">Typhoeus, the best Ruby HTTP client just got better</a>:</p>
|
91
|
+
</div>
|
92
|
+
<div class="trackbacks-content">
|
93
|
+
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
<a id="comments"></a>
|
104
|
+
<div class="comments" id="all-comments">
|
105
|
+
<h3 class="comments-header">Comments</h3>
|
106
|
+
|
107
|
+
<div class="comments-content" id="comments-content">
|
108
|
+
<!-- comment list --><a id="c6a00d8341f4a0d53ef0120a63a2b7c970b"></a>
|
109
|
+
<div class="comment comment-odd comment-has-avatar" id="comment-6a00d8341f4a0d53ef0120a63a2b7c970b">
|
110
|
+
<div class="comment-avatar">
|
111
|
+
<img id="comment-6a00d8341f4a0d53ef0120a63a2b7c970b-avatarimg" src="http://static.typepad.com/.shared/images/default-avatars/avatar-16-50x50.gif" alt="quinn shanahan" width="50" height="50" />
|
112
|
+
</div>
|
113
|
+
<div class="comment-content" id="comment-6a00d8341f4a0d53ef0120a63a2b7c970b-content">
|
114
|
+
<span id="comment-6a00d8341f4a0d53ef0120a63a2b7c970b-content"><p>I love the new api. In this example</p>
|
115
|
+
|
116
|
+
<p>response = Typhoeus::Request.get("http://www.pauldix.net")</p>
|
117
|
+
|
118
|
+
<p>if i was instead to do </p>
|
119
|
+
|
120
|
+
<p>response = Typhoeus::Request.get("https://www.pauldix.net")</p>
|
121
|
+
|
122
|
+
<p>would it be clever enough to use ssl and port 443? if it did that would be <i>awesome</i>.</p></span>
|
123
|
+
</div>
|
124
|
+
<p class="comment-footer">
|
125
|
+
Posted by:
|
126
|
+
<a rel="nofollow" target="_blank" title="http://whattechnology.com" href="http://whattechnology.com">quinn shanahan</a> |
|
127
|
+
<a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html?cid=6a00d8341f4a0d53ef0120a63a2b7c970b#comment-6a00d8341f4a0d53ef0120a63a2b7c970b">October 29, 2009 at 07:26 PM</a>
|
128
|
+
</p>
|
129
|
+
</div><a id="c6a00d8341f4a0d53ef0120a690c502970c"></a>
|
130
|
+
<div class="comment comment-even comment-by-owner comment-has-avatar" id="comment-6a00d8341f4a0d53ef0120a690c502970c">
|
131
|
+
<div class="comment-avatar">
|
132
|
+
<img id="comment-6a00d8341f4a0d53ef0120a690c502970c-avatarimg" src="http://up5.typepad.com/6a00d8341f4a0d53ef00e553f5dd328833-50si" alt="Paul Dix" width="50" height="50" at:flyout-userxid="6p00d8341f4a0d53ef" at:flyout-enabled="yes" />
|
133
|
+
</div>
|
134
|
+
<div class="comment-content" id="comment-6a00d8341f4a0d53ef0120a690c502970c-content">
|
135
|
+
<span id="comment-6a00d8341f4a0d53ef0120a690c502970c-content"><p>I'm pretty sure it does that. At least, I think libcurl does that automagically.</p></span>
|
136
|
+
</div>
|
137
|
+
<p class="comment-footer">
|
138
|
+
Posted by:
|
139
|
+
<a rel="nofollow" target="_blank" title="http://profile.typepad.com/pauldix" href="http://profile.typepad.com/pauldix">Paul Dix</a> |
|
140
|
+
<a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html?cid=6a00d8341f4a0d53ef0120a690c502970c#comment-6a00d8341f4a0d53ef0120a690c502970c">October 29, 2009 at 09:54 PM</a>
|
141
|
+
</p>
|
142
|
+
</div><a id="c6a00d8341f4a0d53ef0120a6c73c17970b"></a>
|
143
|
+
<div class="comment comment-odd comment-has-avatar" id="comment-6a00d8341f4a0d53ef0120a6c73c17970b">
|
144
|
+
<div class="comment-avatar">
|
145
|
+
<img id="comment-6a00d8341f4a0d53ef0120a6c73c17970b-avatarimg" src="http://a1.twimg.com/profile_images/340990556/images_normal.jpeg" alt="Stockbaat" width="50" height="50" at:flyout-userxid="6p0120a6c73b69970b" at:flyout-enabled="yes" />
|
146
|
+
</div>
|
147
|
+
<div class="comment-content" id="comment-6a00d8341f4a0d53ef0120a6c73c17970b-content">
|
148
|
+
<span id="comment-6a00d8341f4a0d53ef0120a6c73c17970b-content"><p>can I do HEAD requests using typhoeus ?</p></span>
|
149
|
+
</div>
|
150
|
+
<p class="comment-footer">
|
151
|
+
Posted by:
|
152
|
+
<a rel="nofollow" target="_blank" title="http://profile.typepad.com/stockbaat" href="http://profile.typepad.com/stockbaat">Stockbaat</a> |
|
153
|
+
<a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html?cid=6a00d8341f4a0d53ef0120a6c73c17970b#comment-6a00d8341f4a0d53ef0120a6c73c17970b">November 23, 2009 at 03:43 AM</a>
|
154
|
+
</p>
|
155
|
+
</div><a id="c6a00d8341f4a0d53ef0120a6e2a9f9970b"></a>
|
156
|
+
<div class="comment comment-even comment-by-owner comment-has-avatar" id="comment-6a00d8341f4a0d53ef0120a6e2a9f9970b">
|
157
|
+
<div class="comment-avatar">
|
158
|
+
<img id="comment-6a00d8341f4a0d53ef0120a6e2a9f9970b-avatarimg" src="http://up5.typepad.com/6a00d8341f4a0d53ef00e553f5dd328833-50si" alt="Paul Dix" width="50" height="50" at:flyout-userxid="6p00d8341f4a0d53ef" at:flyout-enabled="yes" />
|
159
|
+
</div>
|
160
|
+
<div class="comment-content" id="comment-6a00d8341f4a0d53ef0120a6e2a9f9970b-content">
|
161
|
+
<span id="comment-6a00d8341f4a0d53ef0120a6e2a9f9970b-content"><p>The main Hydra, Request interface doesn't, but using the basic Easy object should work for HEAD requests.</p></span>
|
162
|
+
</div>
|
163
|
+
<p class="comment-footer">
|
164
|
+
Posted by:
|
165
|
+
<a rel="nofollow" target="_blank" title="http://profile.typepad.com/pauldix" href="http://profile.typepad.com/pauldix">Paul Dix</a> |
|
166
|
+
<a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html?cid=6a00d8341f4a0d53ef0120a6e2a9f9970b#comment-6a00d8341f4a0d53ef0120a6e2a9f9970b">November 27, 2009 at 03:37 PM</a>
|
167
|
+
</p>
|
168
|
+
</div><a id="c6a00d8341f4a0d53ef012875e66100970c"></a>
|
169
|
+
<div class="comment comment-odd comment-has-avatar" id="comment-6a00d8341f4a0d53ef012875e66100970c">
|
170
|
+
<div class="comment-avatar">
|
171
|
+
<img id="comment-6a00d8341f4a0d53ef012875e66100970c-avatarimg" src="http://static.typepad.com/.shared/images/default-avatars/avatar-20-50x50.gif" alt="Chris" width="50" height="50" />
|
172
|
+
</div>
|
173
|
+
<div class="comment-content" id="comment-6a00d8341f4a0d53ef012875e66100970c-content">
|
174
|
+
<span id="comment-6a00d8341f4a0d53ef012875e66100970c-content"><p>I'm loving your work, kudos...</p></span>
|
175
|
+
</div>
|
176
|
+
<p class="comment-footer">
|
177
|
+
Posted by:
|
178
|
+
<a rel="nofollow" target="_blank" title="http://rubyrambler.posterous.com/" href="http://rubyrambler.posterous.com/">Chris</a> |
|
179
|
+
<a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html?cid=6a00d8341f4a0d53ef012875e66100970c#comment-6a00d8341f4a0d53ef012875e66100970c">November 28, 2009 at 12:23 AM</a>
|
180
|
+
</p>
|
181
|
+
</div>
|
182
|
+
|
183
|
+
</div>
|
184
|
+
|
185
|
+
</div>
|
186
|
+
<!-- comment-form-atp -->
|
187
|
+
|
188
|
+
|
189
|
+
<div id="atp-comments">
|
190
|
+
|
191
|
+
<div id="comment-preview" class="hiddenBox">
|
192
|
+
<h3 id="header-verify-comment" class="comments-header hiddenBox">Verify your Comment</h3>
|
193
|
+
<h3 id="header-preview-comment" class="comments-header hiddenBox">Previewing your Comment</h3>
|
194
|
+
<div class="comments-content">
|
195
|
+
<div class="comment comment-has-avatar">
|
196
|
+
<div id="comment-preview-content" class="comment-content">
|
197
|
+
</div>
|
198
|
+
<p class="comment-footer">
|
199
|
+
Posted by:
|
200
|
+
<span id="comment-preview-author"></span> | <span id="comment-preview-datetime"></span>
|
201
|
+
</p>
|
202
|
+
</div>
|
203
|
+
</div>
|
204
|
+
</div>
|
205
|
+
<div id="comment-preview-confirmation" class="hiddenBox yellowBox">
|
206
|
+
<p>This is only a preview. Your comment has not yet been posted.</p>
|
207
|
+
<form id="comment-preview-form"
|
208
|
+
method="post"
|
209
|
+
onsubmit="atpComments.interceptPost(commentFormNum); return false;">
|
210
|
+
<input type="submit" name="post" id="comment-confirm-post" value=" Post " onclick="atpComments.interceptPost(commentFormNum); return false;"/>
|
211
|
+
<input type="submit" name="edit" id="comment-edit" value=" Edit " onclick="atpComments.previewOnly(commentFormNum, 2); return false;"/>
|
212
|
+
<span id="previewFormSpinner" class="hiddenBox"><img src="/.shared/images/spinner.gif" alt="Working..." /></span>
|
213
|
+
</form>
|
214
|
+
</div>
|
215
|
+
<div id="comment-error" class="hiddenBox redBox">
|
216
|
+
Your comment could not be posted. Error type: <span id="comment-error-msg"></span>
|
217
|
+
</div>
|
218
|
+
<div id="comment-complete" class="hiddenBox yellowGreenBox">
|
219
|
+
Your comment has been posted. <a href="javascript:void 0;" onclick="window.location.hash='#comment-form';window.location.reload(false)">Post another comment</a>
|
220
|
+
</div>
|
221
|
+
<div id="comment-captcha" class="hiddenBox yellowBox">
|
222
|
+
<div id="captchaText">
|
223
|
+
<p id="captchaFailMsg" class="captchaErrorText hiddenBox">The letters and numbers you entered did not match the image. Please try again.</p>
|
224
|
+
<p>As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.</p>
|
225
|
+
<p><span id="comment-captcha-viewalt">Having trouble reading this image? <a href="#comment-captcha" onClick="atpComments.generateCaptcha(commentFormNum);">View an alternate.</a></span></p>
|
226
|
+
</div>
|
227
|
+
<p class=""><img id="captchaImg" /></p>
|
228
|
+
<form id="comment-captcha-form"
|
229
|
+
method="post"
|
230
|
+
onsubmit="atpComments.submitWithCaptcha(commentFormNum); return false;">
|
231
|
+
<input type="hidden" name="captcha_chal" id="comment-captcha-chal" value="" />
|
232
|
+
<p>
|
233
|
+
<input id="comment-captcha-text" name="captcha_text" size="10" />
|
234
|
+
</p>
|
235
|
+
<p>
|
236
|
+
<input type="submit" name="continue" id="captcha-continue" value=" Continue " />
|
237
|
+
<span id="captchaFormSpinner" class="commentSpinner hiddenBox"><img src="/.shared/images/spinner.gif" alt="Working..." /></span>
|
238
|
+
</p>
|
239
|
+
</form>
|
240
|
+
</div>
|
241
|
+
|
242
|
+
|
243
|
+
<div id="primary-comment-form" class="comment-form">
|
244
|
+
<form id="comment-form" action="http://www.typepad.com/services/comments"
|
245
|
+
method="post">
|
246
|
+
<input type="hidden" name="entry_xid" id="comment-entry-xid" value="6a00d8341f4a0d53ef0120a6340f31970b" />
|
247
|
+
<input type="hidden" name="token" value="1262120431-993e39c91caa7a617b9ce413d6a60a130da05782:LQU8mWveraGQkTDq" />
|
248
|
+
<div class="comments-open">
|
249
|
+
<h2 class="comments-open-header" id="comment-title">Post a comment</h2>
|
250
|
+
<div id="comments-open-content" class="comments-open-content">
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
<div id="comments-open-login" style="display: none;">
|
255
|
+
<div class="login-list">
|
256
|
+
|
257
|
+
<span class="first">Comment below or sign in with</span> <span class="typepad"><a href="https://www.typekey.com/t/typekey/login?v=1.0&t=ec5d3da7462ec508b255452f5b8959f6d827a2d3&lang=en_US&_return=http%3A%2F%2Fwww.pauldix.net%2F2009%2F10%2Ftyphoeus-the-best-ruby-http-client-just-got-better.html&_portal=typepad">TypePad</a></span> <span class="facebook"><a href="https://www.typekey.com/t/typekey/login?v=1.0&t=ec5d3da7462ec508b255452f5b8959f6d827a2d3&lang=en_US&_return=http%3A%2F%2Fwww.pauldix.net%2F2009%2F10%2Ftyphoeus-the-best-ruby-http-client-just-got-better.html&_portal=typepad&service=facebook">Facebook</a></span> <span class="twitter"><a href="https://www.typekey.com/t/typekey/login?v=1.0&t=ec5d3da7462ec508b255452f5b8959f6d827a2d3&lang=en_US&_return=http%3A%2F%2Fwww.pauldix.net%2F2009%2F10%2Ftyphoeus-the-best-ruby-http-client-just-got-better.html&_portal=typepad&service=twitter">Twitter</a></span> <span>and <a href="https://www.typekey.com/t/typekey/login?v=1.0&t=ec5d3da7462ec508b255452f5b8959f6d827a2d3&lang=en_US&_return=http%3A%2F%2Fwww.pauldix.net%2F2009%2F10%2Ftyphoeus-the-best-ruby-http-client-just-got-better.html&_portal=typepad&service=openid">more...</a></span>
|
258
|
+
|
259
|
+
</div>
|
260
|
+
<div class="clr"></div>
|
261
|
+
</div>
|
262
|
+
<div id="comments-open-logout" style="display: none;">
|
263
|
+
You are currently signed in as
|
264
|
+
<span id="commenter-name">(nobody)</span>.
|
265
|
+
<a href="http://www.pauldix.net/.services/sitelogout?to=https%3A%2F%2Fwww.typekey.com%2Ft%2Ftypekey%2F%3F__mode%3Dlogout%26_return%3Dhttp%253A%252F%252Fwww.pauldix.net%252F2009%252F10%252Ftyphoeus-the-best-ruby-http-client-just-got-better.html">Sign Out</a>
|
266
|
+
</div>
|
267
|
+
|
268
|
+
<div id="comments-open-text" style="display:none;">
|
269
|
+
<textarea id="comment-text" name="text" rows="10" cols="30" onkeyup="atpComments.maxTextArea(this, 64000);"></textarea>
|
270
|
+
|
271
|
+
<p class="comments-open-subtext">
|
272
|
+
(You can use HTML tags like <b> <i> and <ul> to style your text. URLs automatically linked.)
|
273
|
+
</p>
|
274
|
+
|
275
|
+
</div>
|
276
|
+
<div id="comments-open-data" style="display:none;">
|
277
|
+
<p>Your Information</p>
|
278
|
+
<p>
|
279
|
+
(Name and email address are required. Email address will not be displayed with the comment.)
|
280
|
+
|
281
|
+
</p>
|
282
|
+
<p>
|
283
|
+
<input id="comment-author" at:default="Name" name="author" size="30" value="Name" onfocus="if(this.value==this.getAttribute('at:default')) this.value='';" onBlur="if(this.value=='') this.value=this.getAttribute('at:default');" class="grayText"/>
|
284
|
+
<label for="comment-author" id="comment-author-error" class="comment-error hiddenBox">Name is required to post a comment</label>
|
285
|
+
</p>
|
286
|
+
<p>
|
287
|
+
<input id="comment-email" at:default="Email Address" name="email" size="30" value="Email Address" onfocus="if(this.value==this.getAttribute('at:default')) this.value='';" onBlur="if(this.value=='') this.value=this.getAttribute('at:default');" class="grayText"/>
|
288
|
+
<label for="comment-email" id="comment-email-error" class="comment-error hiddenBox">Please enter a valid email address</label>
|
289
|
+
</p>
|
290
|
+
<p>
|
291
|
+
<input id="comment-url" at:default="Web Site URL" name="url" size="30" value="Web Site URL" onfocus="if(this.value==this.getAttribute('at:default')) this.value='';" onBlur="if(this.value=='') this.value=this.getAttribute('at:default');" class="grayText"/>
|
292
|
+
<label for="comment-url" id="comment-url-error" class="comment-error hiddenBox">Invalid URL</label>
|
293
|
+
</p>
|
294
|
+
</div>
|
295
|
+
</div>
|
296
|
+
<div id="comments-open-footer" class="comments-open-footer" style="display:none;">
|
297
|
+
<input type="submit" name="post" id="comment-post-button" value=" Post " onclick="atpComments.interceptPost(commentFormNum); return false;" disabled="true" />
|
298
|
+
<input type="submit" name="preview" id="comment-preview-button" value=" Preview " onclick="atpComments.previewOnly(commentFormNum, 1); return false;" disabled="true" />
|
299
|
+
<span id="commentEntryFormSpinner" class="commentSpinner hiddenBox"><img src="/.shared/images/spinner.gif" alt="Working..." /></span>
|
300
|
+
</div>
|
301
|
+
</div>
|
302
|
+
</form>
|
303
|
+
<noscript>
|
304
|
+
|
305
|
+
<div id="comments-open-noscript" class="comments-open-noscript">
|
306
|
+
<form action="http://www.typepad.com/services/comments" method="post">
|
307
|
+
<input type="hidden" name="entry_xid" id="comment-entry-xid" value="6a00d8341f4a0d53ef0120a6340f31970b" />
|
308
|
+
<input type="hidden" name="token" value="1262120431-77ab5caefffe75a7198d215ac6b043ad542f6acf:H23MwoUs0F3kW8IZ" />
|
309
|
+
Name:<br /><input type="text" name="author" size="30" /><br />
|
310
|
+
Email address:<br /><input type="text" name="email" size="30" /><br />
|
311
|
+
URL:<br /><input type="text" name="url" size="30" /><br /><br />
|
312
|
+
Comment:<br /><textarea name="text" cols="40" rows="4"></textarea><br />
|
313
|
+
|
314
|
+
<input type="submit" name="submit" value="Submit" />
|
315
|
+
</form>
|
316
|
+
</div>
|
317
|
+
|
318
|
+
</noscript>
|
319
|
+
</div>
|
320
|
+
</div>
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
</div>
|
328
|
+
</div>
|
329
|
+
<div id="beta">
|
330
|
+
<div id="beta-inner" class="pkg">
|
331
|
+
|
332
|
+
<!-- sidebar -->
|
333
|
+
|
334
|
+
|
335
|
+
<!-- user photo -->
|
336
|
+
<div class="module-photo module">
|
337
|
+
<div class="module-content"><img src="http://pauldix.blogs.com/.a/6a00d8341f4a0d53ef00e553f5dd328833-150wi" alt="My Photo" /></div>
|
338
|
+
</div>
|
339
|
+
|
340
|
+
<div class="module-widget module" id="widget-LinkedIn_linkedin_profile_widget">
|
341
|
+
<div class="module-content">
|
342
|
+
<div style="text-align:center"><a href="http://www.linkedin.com/in/pauldix?trk=btn_typepad" ><img src="http://www.linkedin.com/img/webpromo/btn_viewmy_160x25.gif" width="160" height="25" border="0" alt="View Paul Dix's profile on LinkedIn" style="margin-bottom:5px"></a><br><a href="http://www.linkedin.com/in/pauldix?trk=btn_typepad" style="color:#0783B6;font:11px arial,sans-serif;text-decoration:none">See how we're connected</a></div>
|
343
|
+
|
344
|
+
</div>
|
345
|
+
</div><div class="module-email module">
|
346
|
+
<div class="module-content">
|
347
|
+
<script type="text/javascript">
|
348
|
+
<!--
|
349
|
+
document.write('<a href="ma' + 'ilto:paul@pauldix.net">Email Me</a>');
|
350
|
+
// -->
|
351
|
+
</script>
|
352
|
+
|
353
|
+
</div>
|
354
|
+
</div>
|
355
|
+
<div class="module-widget module" id="widget-FeedBurner_standardSmall">
|
356
|
+
<div class="module-content">
|
357
|
+
<p><a href="http://feeds.feedburner.com/PaulDixExplainsNothing" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/PaulDixExplainsNothing" rel="alternate" type="application/rss+xml">Subscribe in a reader</a></p>
|
358
|
+
</div>
|
359
|
+
</div><div class="module-typelist module">
|
360
|
+
<h2 class="module-header">Linkage</h2>
|
361
|
+
<div class="module-content">
|
362
|
+
<ul class="module-list">
|
363
|
+
<li class="module-list-item"><a href="http://github.com/pauldix">My Github</a><br /></li>
|
364
|
+
<li class="module-list-item"><a href="http://github.com/pauldix/feedzirra">Feedzirra</a><br />My Ruby library for parsing and fetching feeds at blinding speed.</li>
|
365
|
+
<li class="module-list-item"><a href="http://github.com/pauldix/sax-machine">SAX Machine</a><br />My Ruby library exposes a DSL for building Nokogiri backed SAX parsers.</li>
|
366
|
+
<li class="module-list-item"><a href="http://github.com/pauldix/typhoeus">Typhoeus</a><br />My Ruby library for running HTTP requests quickly, easily, and in parallel.</li>
|
367
|
+
|
368
|
+
</ul>
|
369
|
+
</div>
|
370
|
+
</div>
|
371
|
+
|
372
|
+
<div class="module-archives module">
|
373
|
+
<h2 class="module-header">Recent Posts</h2>
|
374
|
+
<div class="module-content">
|
375
|
+
<ul class="module-list">
|
376
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/11/resources-for-synchronous-reads-asynchronous-writes-at-rubyconf-2009.html">Resources for Synchronous Reads, Asynchronous Writes at RubyConf 2009</a></li>
|
377
|
+
|
378
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html">Typhoeus, the best Ruby HTTP client just got better</a></li>
|
379
|
+
|
380
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/10/bypassing-wxwidgets-error-when-building-erlang-from-source-on-os-x.html">Bypassing wxWidgets error when building Erlang from Source on OS X</a></li>
|
381
|
+
|
382
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/10/detect-and-parse-atom-and-rss-feed-urls-from-html-with-trufflehog.html">Detect and Parse Atom and RSS Feed URLs from HTML with TruffleHog</a></li>
|
383
|
+
|
384
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/10/using-the-nginx-memcached-module-with-passenger.html">Using the Nginx Memcached module with Passenger</a></li>
|
385
|
+
|
386
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/09/first-nyc-machine-learning-meetup.html">First NYC Machine Learning Meetup</a></li>
|
387
|
+
|
388
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/07/using-named-pipes-in-ruby-for-interprocess-communication.html">Using Named Pipes in Ruby for Inter-process Communication</a></li>
|
389
|
+
|
390
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/06/on-ruby-interview-with-me.html">On Ruby Interview with me</a></li>
|
391
|
+
|
392
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/05/breath-fire-over-http-in-ruby-with-typhoeus.html">Breathe fire over HTTP in Ruby with Typhoeus</a></li>
|
393
|
+
|
394
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/05/railsconf-this-week.html">RailsConf this week</a></li>
|
395
|
+
|
396
|
+
|
397
|
+
</ul>
|
398
|
+
</div>
|
399
|
+
</div>
|
400
|
+
<div class="module-feed module">
|
401
|
+
<h2 class="module-header">Twitter / pauldix</h2>
|
402
|
+
<div class="module-content" id="feed-39393fef12adc57def656d605a14747caac52903">
|
403
|
+
<script type="text/javascript" defer="defer" src="http://pauldix.blogs.com/.services/content?src=Feed:http%3A%2F%2Ftwitter.com%2Fstatuses%2Fuser_timeline%2F13826102.rss,5"></script>
|
404
|
+
</div>
|
405
|
+
</div>
|
406
|
+
<div class="module-elsewhere module">
|
407
|
+
<h2 class="module-header">Services I'm On</h2>
|
408
|
+
<div class="typelist-plain module-content">
|
409
|
+
<ul class="module-list">
|
410
|
+
<li class="module-list-item">
|
411
|
+
<a href="aim:goim?screenname=dixp77"><img src="/.shared/images/profile/service_icons/aim.png" alt="AIM" width="16" height="16" /></a>
|
412
|
+
<a href="aim:goim?screenname=dixp77" rel="me">AIM: dixp77</a>
|
413
|
+
</li>
|
414
|
+
<li class="module-list-item">
|
415
|
+
<a href="http://delicious.com/pauldix"><img src="/.shared/images/profile/service_icons/delicious.png" alt="Delicious" width="16" height="16" /></a>
|
416
|
+
<a href="http://delicious.com/pauldix" rel="me">Delicious: pauldix</a>
|
417
|
+
</li>
|
418
|
+
<li class="module-list-item">
|
419
|
+
<a href="http://www.facebook.com/profile.php?id=pcd2104%40columbia.edu"><img src="/.shared/images/profile/service_icons/facebook.png" alt="Facebook" width="16" height="16" /></a>
|
420
|
+
<a href="http://www.facebook.com/profile.php?id=pcd2104%40columbia.edu" rel="me">Facebook: pcd2104@columbia.edu</a>
|
421
|
+
</li>
|
422
|
+
<li class="module-list-item">
|
423
|
+
<a href="http://www.flickr.com/photos/pauldix/"><img src="/.shared/images/profile/service_icons/flickr.png" alt="Flickr" width="16" height="16" /></a>
|
424
|
+
<a href="http://www.flickr.com/photos/pauldix/" rel="me">Flickr: pauldix</a>
|
425
|
+
</li>
|
426
|
+
<li class="module-list-item">
|
427
|
+
<a href="msnim:chat?contact=paul%40pauldix.net"><img src="/.shared/images/profile/service_icons/msn.png" alt="MSN Messenger" width="16" height="16" /></a>
|
428
|
+
<a href="msnim:chat?contact=paul%40pauldix.net" rel="me">MSN Messenger: paul@pauldix.net</a>
|
429
|
+
</li>
|
430
|
+
<li class="module-list-item">
|
431
|
+
<a href="callto://paulcdix"><img src="/.shared/images/profile/service_icons/skype.png" alt="Skype" width="16" height="16" /></a>
|
432
|
+
<a href="callto://paulcdix" rel="me">Skype: paulcdix</a>
|
433
|
+
</li>
|
434
|
+
<li class="module-list-item">
|
435
|
+
<a href="http://twitter.com/pauldix"><img src="/.shared/images/profile/service_icons/twitter.png" alt="Twitter" width="16" height="16" /></a>
|
436
|
+
<a href="http://twitter.com/pauldix" rel="me">Twitter: pauldix</a>
|
437
|
+
</li>
|
438
|
+
<li class="module-list-item">
|
439
|
+
<a href="http://edit.yahoo.com/config/send_webmesg?.target=paulcdix"><img src="/.shared/images/profile/service_icons/yahoo.png" alt="Yahoo!" width="16" height="16" /></a>
|
440
|
+
<a href="http://edit.yahoo.com/config/send_webmesg?.target=paulcdix" rel="me">Yahoo!: paulcdix</a>
|
441
|
+
</li>
|
442
|
+
|
443
|
+
</ul>
|
444
|
+
</div>
|
445
|
+
|
446
|
+
|
447
|
+
</div>
|
448
|
+
<div class="module-archives module">
|
449
|
+
<h2 class="module-header"><a href="http://www.pauldix.net/archives.html">Archives</a></h2>
|
450
|
+
<div class="module-content">
|
451
|
+
<ul class="module-list">
|
452
|
+
|
453
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/11/index.html">November 2009</a></li>
|
454
|
+
|
455
|
+
|
456
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/10/index.html">October 2009</a></li>
|
457
|
+
|
458
|
+
|
459
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/09/index.html">September 2009</a></li>
|
460
|
+
|
461
|
+
|
462
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/07/index.html">July 2009</a></li>
|
463
|
+
|
464
|
+
|
465
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/06/index.html">June 2009</a></li>
|
466
|
+
|
467
|
+
|
468
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/05/index.html">May 2009</a></li>
|
469
|
+
|
470
|
+
|
471
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/04/index.html">April 2009</a></li>
|
472
|
+
|
473
|
+
|
474
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/03/index.html">March 2009</a></li>
|
475
|
+
|
476
|
+
|
477
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/02/index.html">February 2009</a></li>
|
478
|
+
|
479
|
+
|
480
|
+
<li class="module-list-item"><a href="http://www.pauldix.net/2009/01/index.html">January 2009</a></li>
|
481
|
+
</ul>
|
482
|
+
<p class="module-more"><a href="http://www.pauldix.net/archives.html">More...</a></p>
|
483
|
+
|
484
|
+
|
485
|
+
|
486
|
+
</div>
|
487
|
+
</div>
|
488
|
+
|
489
|
+
<div class="module-widget module" id="widget-Widgetbox_1f1dca67-0b36-4e14-803b-6bfd184abac1">
|
490
|
+
<div class="module-content">
|
491
|
+
<script type="text/javascript" src="http://widgetserver.com/syndication/subscriber/InsertPanel.js?panelId=1f1dca67-0b36-4e14-803b-6bfd184abac1"></script>
|
492
|
+
</div>
|
493
|
+
</div>
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
</div>
|
499
|
+
</div>
|
500
|
+
</div>
|
501
|
+
</div>
|
502
|
+
|
503
|
+
|
504
|
+
</div>
|
505
|
+
</div>
|
506
|
+
|
507
|
+
|
508
|
+
<script type="text/javascript">
|
509
|
+
<!--
|
510
|
+
var extra_happy = Math.floor(1000000000 * Math.random());
|
511
|
+
document.write('<img src="http://www.typepad.com/t/stats?blog_id=108605&user_id=280961&page=' + escape(location.href) + '&referrer=' + escape(document.referrer) + '&i=' + extra_happy + '" width="1" height="1" alt="" style="position: absolute; top: 0; left: 0;" />');
|
512
|
+
// -->
|
513
|
+
</script>
|
514
|
+
|
515
|
+
|
516
|
+
<!-- Start Quantcast tag -->
|
517
|
+
<script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>
|
518
|
+
<script type="text/javascript">_qoptions = { tags:"typepad.extended" }; _qacct="p-fcYWUmj5YbYKM"; quantserve();</script>
|
519
|
+
<noscript>
|
520
|
+
<a href="http://www.quantcast.com/p-fcYWUmj5YbYKM" target="_blank"><img src="http://pixel.quantserve.com/pixel/p-fcYWUmj5YbYKM.gif?tags=typepad.extended" style="display: none" border="0" height="1" width="1" alt="Quantcast"/></a>
|
521
|
+
</noscript>
|
522
|
+
<!-- End Quantcast tag -->
|
523
|
+
|
524
|
+
<script src="http://cdn.media6degrees.com/static/ty2093.js" type="text/javascript"></script></body>
|
525
|
+
</html>
|
526
|
+
|
527
|
+
<script type="text/javascript">
|
528
|
+
var captchaImgAttempts = 0;
|
529
|
+
var allowAnonComments = '0';
|
530
|
+
var registrationRequired = 0;
|
531
|
+
var registrationOptional = 1;
|
532
|
+
var emailRequired = 1;
|
533
|
+
var useAvatars = 1;
|
534
|
+
var jsonURL = "/.services/json-rpc";
|
535
|
+
|
536
|
+
var captchaSrc = "/.services/captcha?code_encrypted=";
|
537
|
+
var alertCommentCannotBeBlank = "You can not leave an empty comment. Please enter some text in the Comment field.";
|
538
|
+
var alertEditingExpired = "Sorry, you're no longer allowed to edit this comment. You may have taken too much time before submitting your edit or someone may have already replied to it.";
|
539
|
+
|
540
|
+
var alertAuthorCannotBeBlank = "Name must not be blank.";
|
541
|
+
var alertEmailCannotBeBlank = "Email Address must not be blank.";
|
542
|
+
var alertAuthorAndEmailCannotBeBlank = "Name and email address are both required!";
|
543
|
+
var alertEmailIsInvalid = "The Email Address you entered is invalid. Please enter a valid email address.";
|
544
|
+
var alertUnauthorizedAction = "The comments on this post are closed.";
|
545
|
+
var msgPostReplyTo = "Reply to ";
|
546
|
+
var msgInReplyTo = "In reply to ";
|
547
|
+
var msgPostAComment = "Post a comment ";
|
548
|
+
var atpCommentsPath = "/.shared/js/atpcomments_yui.js?v=4";
|
549
|
+
var hasChanged = 0;
|
550
|
+
var hostName = ".pauldix.net";
|
551
|
+
var tp_comment_token = "1262120431-62d457c45cff3b5b3ca447963486db9fee330526:QblOpHWDjTK4zh4M";
|
552
|
+
|
553
|
+
var isPage = 0;
|
554
|
+
var blog_xid = "6a00d8341f4a0d53ef00d8341f536453ef";
|
555
|
+
var xid = "";
|
556
|
+
var injectCode = '<div id=\"comment-preview\" class=\"hiddenBox\">\n\t<h3 id=\"header-verify-comment\" class=\"comments-header hiddenBox\">Verify your Comment<\/h3>\n <h3 id=\"header-preview-comment\" class=\"comments-header hiddenBox\">Previewing your Comment<\/h3>\n\t<div class=\"comments-content\">\n\t\t<div class=\"comment comment-has-avatar\">\n\t\t\t<div id=\"comment-preview-content\" class=\"comment-content\">\n\t\t\t<\/div>\n\t\t\t<p class=\"comment-footer\">\n\t\t\t\tPosted by: \n\t\t\t\t<span id=\"comment-preview-author\"><\/span> | <span id=\"comment-preview-datetime\"><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n<div id=\"comment-preview-confirmation\" class=\"hiddenBox yellowBox\">\n <p>This is only a preview. Your comment has not yet been posted.<\/p>\n \t<form id=\"comment-preview-form\"\n \t\tmethod=\"post\"\n \t\tonsubmit=\"atpComments.interceptPost(commentFormNum); return false;\">\n\t\t<input type=\"submit\" name=\"post\" id=\"comment-confirm-post\" value=\" Post \" onclick=\"atpComments.interceptPost(commentFormNum); return false;\"/>\t\t \n\t\t<input type=\"submit\" name=\"edit\" id=\"comment-edit\" value=\" Edit \" onclick=\"atpComments.previewOnly(commentFormNum, 2); return false;\"/>\n <span id=\"previewFormSpinner\" class=\"hiddenBox\"><img src=\"/.shared/images/spinner.gif\" alt=\"Working...\" /><\/span>\n\t<\/form>\n<\/div>\n<div id=\"comment-error\" class=\"hiddenBox redBox\">\t \n Your comment could not be posted. Error type: <span id=\"comment-error-msg\"><\/span> \n<\/div>\t\n<div id=\"comment-complete\" class=\"hiddenBox yellowGreenBox\">\n Your comment has been posted. <a href=\"javascript:void 0;\" onclick=\"window.location.hash=\'#comment-form\';window.location.reload(false)\">Post another comment<\/a>\n<\/div>\t\n<div id=\"comment-captcha\" class=\"hiddenBox yellowBox\">\t\n <div id=\"captchaText\">\n\t <p id=\"captchaFailMsg\" class=\"captchaErrorText hiddenBox\">The letters and numbers you entered did not match the image. Please try again.<\/p>\t \t \n\t <p>As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.<\/p>\n\t <p><span id=\"comment-captcha-viewalt\">Having trouble reading this image? <a href=\"#comment-captcha\" onClick=\"atpComments.generateCaptcha(commentFormNum);\">View an alternate.<\/a><\/span><\/p>\n <\/div>\n <p class=\"\"><img id=\"captchaImg\" /><\/p>\t\t\n <form id=\"comment-captcha-form\" \n\t\t method=\"post\"\n\t\t onsubmit=\"atpComments.submitWithCaptcha(commentFormNum); return false;\">\n\t\t<input type=\"hidden\" name=\"captcha_chal\" id=\"comment-captcha-chal\" value=\"\" />\n <p>\n\t <input id=\"comment-captcha-text\" name=\"captcha_text\" size=\"10\" />\n <\/p>\n <p>\n <input type=\"submit\" name=\"continue\" id=\"captcha-continue\" value=\" Continue \" />\n <span id=\"captchaFormSpinner\" class=\"commentSpinner hiddenBox\"><img src=\"/.shared/images/spinner.gif\" alt=\"Working...\" /><\/span>\n <\/p>\n <\/form>\n<\/div>\n';
|
557
|
+
var commentFormNum;
|
558
|
+
var entryPermalink = "http://www.pauldix.net/2009/10/typhoeus-the-best-ruby-http-client-just-got-better.html";
|
559
|
+
var inlineReply = document.createElement("div");
|
560
|
+
var commentFooterLinks;
|
561
|
+
var commentHeader;
|
562
|
+
var commentReplyXID;
|
563
|
+
var commentReplyAuthor;
|
564
|
+
var commentReplyComplete;
|
565
|
+
var inlineReplyLoaded = 0;
|
566
|
+
|
567
|
+
function xidToCommentPermalink (entryUrl, xid) {
|
568
|
+
return entryUrl + "?cid=" + xid + "#comment-" + xid;
|
569
|
+
}
|
570
|
+
|
571
|
+
</script>
|
572
|
+
<script type="text/javascript" src="/.shared/js/yui/yuiloader-beta-min.js"></script>
|
573
|
+
<script type="text/javascript" src="/.shared/js/atpcomments.js?v=3"></script>
|
574
|
+
|
575
|
+
<!-- ph=1 -->
|
576
|
+
<!-- nhm:from_kauri -->
|