brendan-skynet 0.9.33 → 0.9.303

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/History.txt +9 -0
  2. data/License.txt +1 -0
  3. data/Manifest.txt +19 -112
  4. data/Rakefile +3 -3
  5. data/app_generators/skynet_install/templates/skynet_config.rb +1 -1
  6. data/extras/rails/views/skynet/index.html.erb +137 -0
  7. data/lib/skynet.rb +15 -15
  8. data/lib/skynet/{skynet_active_record_extensions.rb → active_record_extensions.rb} +0 -0
  9. data/lib/skynet/{skynet_config.rb → config.rb} +0 -0
  10. data/lib/skynet/{skynet_console.rb → console.rb} +1 -1
  11. data/lib/skynet/{skynet_console_helper.rb → console_helper.rb} +0 -0
  12. data/lib/skynet/{skynet_debugger.rb → debugger.rb} +0 -0
  13. data/lib/skynet/{skynet_guid_generator.rb → guid_generator.rb} +0 -0
  14. data/lib/skynet/{skynet_job.rb → job.rb} +0 -0
  15. data/lib/skynet/{skynet_launcher.rb → launcher.rb} +0 -0
  16. data/lib/skynet/{skynet_logger.rb → logger.rb} +0 -0
  17. data/lib/skynet/{skynet_manager.rb → manager.rb} +0 -0
  18. data/lib/skynet/{skynet_message.rb → message.rb} +0 -0
  19. data/lib/skynet/{skynet_message_queue.rb → message_queue.rb} +0 -0
  20. data/lib/skynet/{skynet_partitioners.rb → partitioners.rb} +0 -0
  21. data/lib/skynet/{skynet_ruby_extensions.rb → ruby_extensions.rb} +0 -0
  22. data/lib/skynet/{skynet_task.rb → task.rb} +0 -0
  23. data/lib/skynet/{skynet_tuplespace_server.rb → tuplespace_server.rb} +0 -0
  24. data/lib/skynet/version.rb +1 -1
  25. data/lib/skynet/{skynet_worker.rb → worker.rb} +0 -0
  26. data/skynet.gemspec +21 -132
  27. metadata +22 -130
  28. data/examples/dgrep/README +0 -70
  29. data/examples/dgrep/config/skynet_config.rb +0 -26
  30. data/examples/dgrep/data/shakespeare/README +0 -2
  31. data/examples/dgrep/data/shakespeare/poetry/loverscomplaint +0 -381
  32. data/examples/dgrep/data/shakespeare/poetry/rapeoflucrece +0 -2199
  33. data/examples/dgrep/data/shakespeare/poetry/sonnets +0 -2633
  34. data/examples/dgrep/data/shakespeare/poetry/various +0 -640
  35. data/examples/dgrep/data/shakespeare/poetry/venusandadonis +0 -1423
  36. data/examples/dgrep/data/testfile1.txt +0 -1
  37. data/examples/dgrep/data/testfile2.txt +0 -1
  38. data/examples/dgrep/data/testfile3.txt +0 -1
  39. data/examples/dgrep/data/testfile4.txt +0 -1
  40. data/examples/dgrep/lib/dgrep.rb +0 -59
  41. data/examples/dgrep/lib/mapreduce_test.rb +0 -32
  42. data/examples/dgrep/lib/most_common_words.rb +0 -45
  43. data/examples/dgrep/script/dgrep +0 -75
  44. data/examples/rails_mysql_example/README +0 -66
  45. data/examples/rails_mysql_example/Rakefile +0 -10
  46. data/examples/rails_mysql_example/app/controllers/application.rb +0 -10
  47. data/examples/rails_mysql_example/app/helpers/application_helper.rb +0 -3
  48. data/examples/rails_mysql_example/app/models/user.rb +0 -21
  49. data/examples/rails_mysql_example/app/models/user_favorite.rb +0 -5
  50. data/examples/rails_mysql_example/app/models/user_mailer.rb +0 -12
  51. data/examples/rails_mysql_example/app/views/user_mailer/welcome.erb +0 -5
  52. data/examples/rails_mysql_example/config/boot.rb +0 -109
  53. data/examples/rails_mysql_example/config/database.yml +0 -42
  54. data/examples/rails_mysql_example/config/environment.rb +0 -59
  55. data/examples/rails_mysql_example/config/environments/development.rb +0 -18
  56. data/examples/rails_mysql_example/config/environments/production.rb +0 -19
  57. data/examples/rails_mysql_example/config/environments/test.rb +0 -22
  58. data/examples/rails_mysql_example/config/initializers/inflections.rb +0 -10
  59. data/examples/rails_mysql_example/config/initializers/mime_types.rb +0 -5
  60. data/examples/rails_mysql_example/config/initializers/skynet.rb +0 -1
  61. data/examples/rails_mysql_example/config/routes.rb +0 -35
  62. data/examples/rails_mysql_example/config/skynet_config.rb +0 -36
  63. data/examples/rails_mysql_example/db/migrate/001_create_skynet_tables.rb +0 -43
  64. data/examples/rails_mysql_example/db/migrate/002_create_users.rb +0 -16
  65. data/examples/rails_mysql_example/db/migrate/003_create_user_favorites.rb +0 -14
  66. data/examples/rails_mysql_example/db/schema.rb +0 -85
  67. data/examples/rails_mysql_example/db/skynet_mysql_schema.sql +0 -33
  68. data/examples/rails_mysql_example/doc/README_FOR_APP +0 -2
  69. data/examples/rails_mysql_example/lib/tasks/rails_mysql_example.rake +0 -20
  70. data/examples/rails_mysql_example/public/404.html +0 -30
  71. data/examples/rails_mysql_example/public/422.html +0 -30
  72. data/examples/rails_mysql_example/public/500.html +0 -30
  73. data/examples/rails_mysql_example/public/dispatch.cgi +0 -10
  74. data/examples/rails_mysql_example/public/dispatch.fcgi +0 -24
  75. data/examples/rails_mysql_example/public/dispatch.rb +0 -10
  76. data/examples/rails_mysql_example/public/favicon.ico +0 -0
  77. data/examples/rails_mysql_example/public/images/rails.png +0 -0
  78. data/examples/rails_mysql_example/public/index.html +0 -277
  79. data/examples/rails_mysql_example/public/javascripts/application.js +0 -2
  80. data/examples/rails_mysql_example/public/javascripts/controls.js +0 -963
  81. data/examples/rails_mysql_example/public/javascripts/dragdrop.js +0 -972
  82. data/examples/rails_mysql_example/public/javascripts/effects.js +0 -1120
  83. data/examples/rails_mysql_example/public/javascripts/prototype.js +0 -4225
  84. data/examples/rails_mysql_example/public/robots.txt +0 -5
  85. data/examples/rails_mysql_example/script/about +0 -3
  86. data/examples/rails_mysql_example/script/console +0 -3
  87. data/examples/rails_mysql_example/script/destroy +0 -3
  88. data/examples/rails_mysql_example/script/generate +0 -3
  89. data/examples/rails_mysql_example/script/performance/benchmarker +0 -3
  90. data/examples/rails_mysql_example/script/performance/profiler +0 -3
  91. data/examples/rails_mysql_example/script/performance/request +0 -3
  92. data/examples/rails_mysql_example/script/plugin +0 -3
  93. data/examples/rails_mysql_example/script/process/inspector +0 -3
  94. data/examples/rails_mysql_example/script/process/reaper +0 -3
  95. data/examples/rails_mysql_example/script/process/spawner +0 -3
  96. data/examples/rails_mysql_example/script/runner +0 -3
  97. data/examples/rails_mysql_example/script/server +0 -3
  98. data/examples/rails_mysql_example/test/fixtures/user_favorites.yml +0 -9
  99. data/examples/rails_mysql_example/test/fixtures/users.yml +0 -11
  100. data/examples/rails_mysql_example/test/test_helper.rb +0 -38
  101. data/examples/rails_mysql_example/test/unit/user_favorite_test.rb +0 -8
  102. data/examples/rails_mysql_example/test/unit/user_test.rb +0 -8
  103. data/extras/nagios/check_skynet.sh +0 -121
  104. data/extras/rails/views/skynet/index.rhtml +0 -137
  105. data/tasks/website.rake +0 -17
  106. data/test/test_active_record_extensions.rb +0 -138
  107. data/test/test_generator_helper.rb +0 -20
  108. data/test/test_helper.rb +0 -10
  109. data/test/test_mysql_message_queue_adapter.rb +0 -263
  110. data/test/test_skynet.rb +0 -19
  111. data/test/test_skynet_install_generator.rb +0 -49
  112. data/test/test_skynet_job.rb +0 -717
  113. data/test/test_skynet_manager.rb +0 -157
  114. data/test/test_skynet_message.rb +0 -229
  115. data/test/test_skynet_task.rb +0 -24
  116. data/test/test_tuplespace_message_queue.rb +0 -174
  117. data/website/index.html +0 -181
  118. data/website/index.txt +0 -98
  119. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  120. data/website/stylesheets/screen.css +0 -138
  121. data/website/template.rhtml +0 -48
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brendan-skynet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.33
4
+ version: 0.9.303
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Pisoni
8
+ - Brendan Baldwin
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
@@ -43,12 +44,6 @@ extra_rdoc_files:
43
44
  - License.txt
44
45
  - Manifest.txt
45
46
  - README.txt
46
- - examples/dgrep/data/testfile1.txt
47
- - examples/dgrep/data/testfile2.txt
48
- - examples/dgrep/data/testfile3.txt
49
- - examples/dgrep/data/testfile4.txt
50
- - examples/rails_mysql_example/public/robots.txt
51
- - website/index.txt
52
47
  files:
53
48
  - History.txt
54
49
  - License.txt
@@ -66,109 +61,33 @@ files:
66
61
  - bin/skynet_tuplespace_server
67
62
  - config/hoe.rb
68
63
  - config/requirements.rb
69
- - examples/dgrep/README
70
- - examples/dgrep/config/skynet_config.rb
71
- - examples/dgrep/data/shakespeare/README
72
- - examples/dgrep/data/shakespeare/poetry/loverscomplaint
73
- - examples/dgrep/data/shakespeare/poetry/rapeoflucrece
74
- - examples/dgrep/data/shakespeare/poetry/sonnets
75
- - examples/dgrep/data/shakespeare/poetry/various
76
- - examples/dgrep/data/shakespeare/poetry/venusandadonis
77
- - examples/dgrep/data/testfile1.txt
78
- - examples/dgrep/data/testfile2.txt
79
- - examples/dgrep/data/testfile3.txt
80
- - examples/dgrep/data/testfile4.txt
81
- - examples/dgrep/lib/dgrep.rb
82
- - examples/dgrep/lib/mapreduce_test.rb
83
- - examples/dgrep/lib/most_common_words.rb
84
- - examples/dgrep/script/dgrep
85
- - examples/rails_mysql_example/README
86
- - examples/rails_mysql_example/Rakefile
87
- - examples/rails_mysql_example/app/controllers/application.rb
88
- - examples/rails_mysql_example/app/helpers/application_helper.rb
89
- - examples/rails_mysql_example/app/models/user.rb
90
- - examples/rails_mysql_example/app/models/user_favorite.rb
91
- - examples/rails_mysql_example/app/models/user_mailer.rb
92
- - examples/rails_mysql_example/app/views/user_mailer/welcome.erb
93
- - examples/rails_mysql_example/config/boot.rb
94
- - examples/rails_mysql_example/config/database.yml
95
- - examples/rails_mysql_example/config/environment.rb
96
- - examples/rails_mysql_example/config/environments/development.rb
97
- - examples/rails_mysql_example/config/environments/production.rb
98
- - examples/rails_mysql_example/config/environments/test.rb
99
- - examples/rails_mysql_example/config/initializers/inflections.rb
100
- - examples/rails_mysql_example/config/initializers/mime_types.rb
101
- - examples/rails_mysql_example/config/initializers/skynet.rb
102
- - examples/rails_mysql_example/config/routes.rb
103
- - examples/rails_mysql_example/config/skynet_config.rb
104
- - examples/rails_mysql_example/db/migrate/001_create_skynet_tables.rb
105
- - examples/rails_mysql_example/db/migrate/002_create_users.rb
106
- - examples/rails_mysql_example/db/migrate/003_create_user_favorites.rb
107
- - examples/rails_mysql_example/db/schema.rb
108
- - examples/rails_mysql_example/db/skynet_mysql_schema.sql
109
- - examples/rails_mysql_example/doc/README_FOR_APP
110
- - examples/rails_mysql_example/lib/tasks/rails_mysql_example.rake
111
- - examples/rails_mysql_example/public/404.html
112
- - examples/rails_mysql_example/public/422.html
113
- - examples/rails_mysql_example/public/500.html
114
- - examples/rails_mysql_example/public/dispatch.cgi
115
- - examples/rails_mysql_example/public/dispatch.fcgi
116
- - examples/rails_mysql_example/public/dispatch.rb
117
- - examples/rails_mysql_example/public/favicon.ico
118
- - examples/rails_mysql_example/public/images/rails.png
119
- - examples/rails_mysql_example/public/index.html
120
- - examples/rails_mysql_example/public/javascripts/application.js
121
- - examples/rails_mysql_example/public/javascripts/controls.js
122
- - examples/rails_mysql_example/public/javascripts/dragdrop.js
123
- - examples/rails_mysql_example/public/javascripts/effects.js
124
- - examples/rails_mysql_example/public/javascripts/prototype.js
125
- - examples/rails_mysql_example/public/robots.txt
126
- - examples/rails_mysql_example/script/about
127
- - examples/rails_mysql_example/script/console
128
- - examples/rails_mysql_example/script/destroy
129
- - examples/rails_mysql_example/script/generate
130
- - examples/rails_mysql_example/script/performance/benchmarker
131
- - examples/rails_mysql_example/script/performance/profiler
132
- - examples/rails_mysql_example/script/performance/request
133
- - examples/rails_mysql_example/script/plugin
134
- - examples/rails_mysql_example/script/process/inspector
135
- - examples/rails_mysql_example/script/process/reaper
136
- - examples/rails_mysql_example/script/process/spawner
137
- - examples/rails_mysql_example/script/runner
138
- - examples/rails_mysql_example/script/server
139
- - examples/rails_mysql_example/test/fixtures/user_favorites.yml
140
- - examples/rails_mysql_example/test/fixtures/users.yml
141
- - examples/rails_mysql_example/test/test_helper.rb
142
- - examples/rails_mysql_example/test/unit/user_favorite_test.rb
143
- - examples/rails_mysql_example/test/unit/user_test.rb
144
64
  - extras/README
145
65
  - extras/init.d/skynet
146
- - extras/nagios/check_skynet.sh
147
66
  - extras/rails/controllers/skynet_controller.rb
148
- - extras/rails/views/skynet/index.rhtml
67
+ - extras/rails/views/skynet/index.html.erb
149
68
  - lib/skynet.rb
69
+ - lib/skynet/active_record_extensions.rb
70
+ - lib/skynet/config.rb
71
+ - lib/skynet/console.rb
72
+ - lib/skynet/console_helper.rb
73
+ - lib/skynet/debugger.rb
74
+ - lib/skynet/guid_generator.rb
75
+ - lib/skynet/job.rb
76
+ - lib/skynet/launcher.rb
77
+ - lib/skynet/logger.rb
78
+ - lib/skynet/manager.rb
150
79
  - lib/skynet/mapreduce_helper.rb
151
80
  - lib/skynet/mapreduce_test.rb
152
81
  - lib/skynet/message_queue_adapters/message_queue_adapter.rb
153
82
  - lib/skynet/message_queue_adapters/mysql.rb
154
83
  - lib/skynet/message_queue_adapters/tuple_space.rb
155
- - lib/skynet/skynet_active_record_extensions.rb
156
- - lib/skynet/skynet_config.rb
157
- - lib/skynet/skynet_console.rb
158
- - lib/skynet/skynet_console_helper.rb
159
- - lib/skynet/skynet_debugger.rb
160
- - lib/skynet/skynet_guid_generator.rb
161
- - lib/skynet/skynet_job.rb
162
- - lib/skynet/skynet_launcher.rb
163
- - lib/skynet/skynet_logger.rb
164
- - lib/skynet/skynet_manager.rb
165
- - lib/skynet/skynet_message.rb
166
- - lib/skynet/skynet_message_queue.rb
167
- - lib/skynet/skynet_partitioners.rb
168
- - lib/skynet/skynet_ruby_extensions.rb
169
- - lib/skynet/skynet_task.rb
170
- - lib/skynet/skynet_tuplespace_server.rb
171
- - lib/skynet/skynet_worker.rb
84
+ - lib/skynet/message.rb
85
+ - lib/skynet/message_queue.rb
86
+ - lib/skynet/partitioners.rb
87
+ - lib/skynet/ruby_extensions.rb
88
+ - lib/skynet/task.rb
89
+ - lib/skynet/tuplespace_server.rb
90
+ - lib/skynet/worker.rb
172
91
  - lib/skynet/version.rb
173
92
  - script/destroy
174
93
  - script/generate
@@ -177,23 +96,6 @@ files:
177
96
  - skynet.gemspec
178
97
  - tasks/deployment.rake
179
98
  - tasks/environment.rake
180
- - tasks/website.rake
181
- - test/test_active_record_extensions.rb
182
- - test/test_generator_helper.rb
183
- - test/test_helper.rb
184
- - test/test_mysql_message_queue_adapter.rb
185
- - test/test_skynet.rb
186
- - test/test_skynet_install_generator.rb
187
- - test/test_skynet_job.rb
188
- - test/test_skynet_manager.rb
189
- - test/test_skynet_message.rb
190
- - test/test_skynet_task.rb
191
- - test/test_tuplespace_message_queue.rb
192
- - website/index.html
193
- - website/index.txt
194
- - website/javascripts/rounded_corners_lite.inc.js
195
- - website/stylesheets/screen.css
196
- - website/template.rhtml
197
99
  has_rdoc: true
198
100
  homepage: http://skynet.rubyforge.org
199
101
  post_install_message:
@@ -221,15 +123,5 @@ rubygems_version: 1.2.0
221
123
  signing_key:
222
124
  specification_version: 2
223
125
  summary: Skynet - A Ruby Map/Reduce Framework
224
- test_files:
225
- - test/test_active_record_extensions.rb
226
- - test/test_generator_helper.rb
227
- - test/test_helper.rb
228
- - test/test_mysql_message_queue_adapter.rb
229
- - test/test_skynet.rb
230
- - test/test_skynet_install_generator.rb
231
- - test/test_skynet_job.rb
232
- - test/test_skynet_manager.rb
233
- - test/test_skynet_message.rb
234
- - test/test_skynet_task.rb
235
- - test/test_tuplespace_message_queue.rb
126
+ test_files: []
127
+
@@ -1,70 +0,0 @@
1
-
2
- EXAMPLE 1: Distributed Grep
3
- ------------------------------
4
- You have a list of files and want to see how many times each word shows up in those files.
5
- All of the map_reduce code is in lib/mapreduce_test.rb
6
-
7
- To
8
- 1. Run Skynet
9
- > ./script/skynet start
10
-
11
- 2. Watch the logs in another terminal
12
- > tail -f log/skynet.log
13
-
14
- 3. Run dgrep providing it with some words and a directory
15
- > ./script/dgrep -r love hate ./data
16
-
17
- I've put all of shakespears poetry in the data directory. You can download all of Shakespeare's work
18
- to add to the data at http://www.it.usyd.edu.au/~matty/Shakespeare/shakespeare.tar.gz
19
-
20
- Thats it!!
21
-
22
- EXAMPLE 2: Distributed Grep with distributed reducing
23
- ------------------------------
24
- Same example as above, but this time we want to aggregate our results across multiple partitioners. This would
25
- be useful if you had a large reduce data set, or complex calculations in order to reduce. All the code is already
26
- in dgrep.pl. Specifically, notice I've included a self.reduce_partition method (which just forwards to a pre-packaged
27
- partitioner). This partitioner not only breaks up the data returned from the mappers, but also makes sure each reducer
28
- gets all the same keys.
29
-
30
- 1. Run dgrep passing --reducers=2 This tells Skynet to try and use up to 2 reducers (instead of the default of 1)
31
- > ./script/dgrep -r --reducers=2 data file ./data
32
-
33
- This sample application was created by creating in the following way
34
-
35
- 1. Create new app
36
- > mkdir simple_example
37
- > mkdir data lib
38
-
39
- 2. Install Skynet
40
- > skynet_install
41
-
42
- 3. Add Data Files to /data
43
- These are any text files named testfileN.txt and so on
44
-
45
- 4. Create dgrep.rb and drep script (found in lib/ and script/)
46
-
47
- ------------------------------------
48
-
49
- EXAMPLE 1: Most Common Words
50
- ------------------------------
51
- You have a list of files and want the 10 most common 5 or more letter words in all of those fules.
52
-
53
- 1. Run Skynet
54
- > ./script/skynet start
55
-
56
- 2. Watch the logs in another terminal
57
- > tail -f log/skynet.log
58
-
59
- 3. Run dgrep providing it with the '-mcw' (most common words) command, some words and a directory
60
- > ./script/dgrep -r -mcw ./data
61
-
62
- To see what's going on check out lib/most_common_words.rb
63
- ------------------------------------
64
-
65
- If you'd like get a peak at what Skynet is doing, edit ./config/skynet_config.rb and set
66
-
67
- Skynet::CONFIG[:SKYNET_LOG_LEVEL] = Logger::INFO # or Logger::INFO
68
-
69
- and tail ./log/skynet.log
70
-
@@ -1,26 +0,0 @@
1
- # Skynet Configuration File. Should be in APP_ROOT/config/skynet_config.rb
2
- # Start skynet from within your app root with
3
- # $ skynet start
4
-
5
- require 'rubygems'
6
- require 'skynet'
7
-
8
- Skynet::CONFIG[:SKYNET_LOG_LEVEL] = Logger::ERROR
9
- Skynet::CONFIG[:SKYNET_LOG_DIR] = File.expand_path(File.dirname(__FILE__) + "/../log")
10
- Skynet::CONFIG[:SKYNET_PID_DIR] = File.expand_path(File.dirname(__FILE__) + "/../log")
11
-
12
- # ==================================================================
13
- # = Require any other libraries you want skynet to know about here =
14
- # ==================================================================
15
-
16
- # require all ruby files in lib/
17
- Dir["#{File.dirname(__FILE__)}" + "/../lib/**/*.rb"].each do |file|
18
- require file
19
- end
20
-
21
- # ===========================================
22
- # = Set your own configuration options here =
23
- # ===========================================
24
- # You can also configure skynet with
25
- # Skynet.configure(:SOME_CONFIG_OPTION => true, :SOME_OTHER_CONFIG => 3)
26
-
@@ -1,2 +0,0 @@
1
- Download the complete text of shakespeare at
2
- http://www.it.usyd.edu.au/~matty/Shakespeare/shakespeare.tar.gz
@@ -1,381 +0,0 @@
1
- A LOVER'S COMPLAINT
2
-
3
-
4
-
5
- FROM off a hill whose concave womb reworded
6
- A plaintful story from a sistering vale,
7
- My spirits to attend this double voice accorded,
8
- And down I laid to list the sad-tuned tale;
9
- Ere long espied a fickle maid full pale,
10
- Tearing of papers, breaking rings a-twain,
11
- Storming her world with sorrow's wind and rain.
12
-
13
- Upon her head a platted hive of straw,
14
- Which fortified her visage from the sun,
15
- Whereon the thought might think sometime it saw
16
- The carcass of beauty spent and done:
17
- Time had not scythed all that youth begun,
18
- Nor youth all quit; but, spite of heaven's fell rage,
19
- Some beauty peep'd through lattice of sear'd age.
20
-
21
- Oft did she heave her napkin to her eyne,
22
- Which on it had conceited characters,
23
- Laundering the silken figures in the brine
24
- That season'd woe had pelleted in tears,
25
- And often reading what contents it bears;
26
- As often shrieking undistinguish'd woe,
27
- In clamours of all size, both high and low.
28
-
29
- Sometimes her levell'd eyes their carriage ride,
30
- As they did battery to the spheres intend;
31
- Sometime diverted their poor balls are tied
32
- To the orbed earth; sometimes they do extend
33
- Their view right on; anon their gazes lend
34
- To every place at once, and, nowhere fix'd,
35
- The mind and sight distractedly commix'd.
36
-
37
- Her hair, nor loose nor tied in formal plat,
38
- Proclaim'd in her a careless hand of pride
39
- For some, untuck'd, descended her sheaved hat,
40
- Hanging her pale and pined cheek beside;
41
- Some in her threaden fillet still did bide,
42
- And true to bondage would not break from thence,
43
- Though slackly braided in loose negligence.
44
-
45
- A thousand favours from a maund she drew
46
- Of amber, crystal, and of beaded jet,
47
- Which one by one she in a river threw,
48
- Upon whose weeping margent she was set;
49
- Like usury, applying wet to wet,
50
- Or monarch's hands that let not bounty fall
51
- Where want cries some, but where excess begs all.
52
-
53
- Of folded schedules had she many a one,
54
- Which she perused, sigh'd, tore, and gave the flood;
55
- Crack'd many a ring of posied gold and bone
56
- Bidding them find their sepulchres in mud;
57
- Found yet moe letters sadly penn'd in blood,
58
- With sleided silk feat and affectedly
59
- Enswathed, and seal'd to curious secrecy.
60
-
61
- These often bathed she in her fluxive eyes,
62
- And often kiss'd, and often 'gan to tear:
63
- Cried 'O false blood, thou register of lies,
64
- What unapproved witness dost thou bear!
65
- Ink would have seem'd more black and damned here!'
66
- This said, in top of rage the lines she rents,
67
- Big discontent so breaking their contents.
68
-
69
- A reverend man that grazed his cattle nigh--
70
- Sometime a blusterer, that the ruffle knew
71
- Of court, of city, and had let go by
72
- The swiftest hours, observed as they flew--
73
- Towards this afflicted fancy fastly drew,
74
- And, privileged by age, desires to know
75
- In brief the grounds and motives of her woe.
76
-
77
- So slides he down upon his grained bat,
78
- And comely-distant sits he by her side;
79
- When he again desires her, being sat,
80
- Her grievance with his hearing to divide:
81
- If that from him there may be aught applied
82
- Which may her suffering ecstasy assuage,
83
- 'Tis promised in the charity of age.
84
-
85
- 'Father,' she says, 'though in me you behold
86
- The injury of many a blasting hour,
87
- Let it not tell your judgment I am old;
88
- Not age, but sorrow, over me hath power:
89
- I might as yet have been a spreading flower,
90
- Fresh to myself, If I had self-applied
91
- Love to myself and to no love beside.
92
-
93
- 'But, woe is me! too early I attended
94
- A youthful suit--it was to gain my grace--
95
- Of one by nature's outwards so commended,
96
- That maidens' eyes stuck over all his face:
97
- Love lack'd a dwelling, and made him her place;
98
- And when in his fair parts she did abide,
99
- She was new lodged and newly deified.
100
-
101
- 'His browny locks did hang in crooked curls;
102
- And every light occasion of the wind
103
- Upon his lips their silken parcels hurls.
104
- What's sweet to do, to do will aptly find:
105
- Each eye that saw him did enchant the mind,
106
- For on his visage was in little drawn
107
- What largeness thinks in Paradise was sawn.
108
-
109
- 'Small show of man was yet upon his chin;
110
- His phoenix down began but to appear
111
- Like unshorn velvet on that termless skin
112
- Whose bare out-bragg'd the web it seem'd to wear:
113
- Yet show'd his visage by that cost more dear;
114
- And nice affections wavering stood in doubt
115
- If best were as it was, or best without.
116
-
117
- 'His qualities were beauteous as his form,
118
- For maiden-tongued he was, and thereof free;
119
- Yet, if men moved him, was he such a storm
120
- As oft 'twixt May and April is to see,
121
- When winds breathe sweet, untidy though they be.
122
- His rudeness so with his authorized youth
123
- Did livery falseness in a pride of truth.
124
-
125
- 'Well could he ride, and often men would say
126
- 'That horse his mettle from his rider takes:
127
- Proud of subjection, noble by the sway,
128
- What rounds, what bounds, what course, what stop
129
- he makes!'
130
- And controversy hence a question takes,
131
- Whether the horse by him became his deed,
132
- Or he his manage by the well-doing steed.
133
-
134
- 'But quickly on this side the verdict went:
135
- His real habitude gave life and grace
136
- To appertainings and to ornament,
137
- Accomplish'd in himself, not in his case:
138
- All aids, themselves made fairer by their place,
139
- Came for additions; yet their purposed trim
140
- Pieced not his grace, but were all graced by him.
141
-
142
- 'So on the tip of his subduing tongue
143
- All kinds of arguments and question deep,
144
- All replication prompt, and reason strong,
145
- For his advantage still did wake and sleep:
146
- To make the weeper laugh, the laugher weep,
147
- He had the dialect and different skill,
148
- Catching all passions in his craft of will:
149
-
150
- 'That he did in the general bosom reign
151
- Of young, of old; and sexes both enchanted,
152
- To dwell with him in thoughts, or to remain
153
- In personal duty, following where he haunted:
154
- Consents bewitch'd, ere he desire, have granted;
155
- And dialogued for him what he would say,
156
- Ask'd their own wills, and made their wills obey.
157
-
158
- 'Many there were that did his picture get,
159
- To serve their eyes, and in it put their mind;
160
- Like fools that in th' imagination set
161
- The goodly objects which abroad they find
162
- Of lands and mansions, theirs in thought assign'd;
163
- And labouring in moe pleasures to bestow them
164
- Than the true gouty landlord which doth owe them:
165
-
166
- 'So many have, that never touch'd his hand,
167
- Sweetly supposed them mistress of his heart.
168
- My woeful self, that did in freedom stand,
169
- And was my own fee-simple, not in part,
170
- What with his art in youth, and youth in art,
171
- Threw my affections in his charmed power,
172
- Reserved the stalk and gave him all my flower.
173
-
174
- 'Yet did I not, as some my equals did,
175
- Demand of him, nor being desired yielded;
176
- Finding myself in honour so forbid,
177
- With safest distance I mine honour shielded:
178
- Experience for me many bulwarks builded
179
- Of proofs new-bleeding, which remain'd the foil
180
- Of this false jewel, and his amorous spoil.
181
-
182
- 'But, ah, who ever shunn'd by precedent
183
- The destined ill she must herself assay?
184
- Or forced examples, 'gainst her own content,
185
- To put the by-past perils in her way?
186
- Counsel may stop awhile what will not stay;
187
- For when we rage, advice is often seen
188
- By blunting us to make our wits more keen.
189
-
190
- 'Nor gives it satisfaction to our blood,
191
- That we must curb it upon others' proof;
192
- To be forbod the sweets that seem so good,
193
- For fear of harms that preach in our behoof.
194
- O appetite, from judgment stand aloof!
195
- The one a palate hath that needs will taste,
196
- Though Reason weep, and cry, 'It is thy last.'
197
-
198
- 'For further I could say 'This man's untrue,'
199
- And knew the patterns of his foul beguiling;
200
- Heard where his plants in others' orchards grew,
201
- Saw how deceits were gilded in his smiling;
202
- Knew vows were ever brokers to defiling;
203
- Thought characters and words merely but art,
204
- And bastards of his foul adulterate heart.
205
-
206
- 'And long upon these terms I held my city,
207
- Till thus he gan besiege me: 'Gentle maid,
208
- Have of my suffering youth some feeling pity,
209
- And be not of my holy vows afraid:
210
- That's to ye sworn to none was ever said;
211
- For feasts of love I have been call'd unto,
212
- Till now did ne'er invite, nor never woo.
213
-
214
- ''All my offences that abroad you see
215
- Are errors of the blood, none of the mind;
216
- Love made them not: with acture they may be,
217
- Where neither party is nor true nor kind:
218
- They sought their shame that so their shame did find;
219
- And so much less of shame in me remains,
220
- By how much of me their reproach contains.
221
-
222
- ''Among the many that mine eyes have seen,
223
- Not one whose flame my heart so much as warm'd,
224
- Or my affection put to the smallest teen,
225
- Or any of my leisures ever charm'd:
226
- Harm have I done to them, but ne'er was harm'd;
227
- Kept hearts in liveries, but mine own was free,
228
- And reign'd, commanding in his monarchy.
229
-
230
- ''Look here, what tributes wounded fancies sent me,
231
- Of paled pearls and rubies red as blood;
232
- Figuring that they their passions likewise lent me
233
- Of grief and blushes, aptly understood
234
- In bloodless white and the encrimson'd mood;
235
- Effects of terror and dear modesty,
236
- Encamp'd in hearts, but fighting outwardly.
237
-
238
- ''And, lo, behold these talents of their hair,
239
- With twisted metal amorously impleach'd,
240
- I have received from many a several fair,
241
- Their kind acceptance weepingly beseech'd,
242
- With the annexions of fair gems enrich'd,
243
- And deep-brain'd sonnets that did amplify
244
- Each stone's dear nature, worth, and quality.
245
-
246
- ''The diamond,--why, 'twas beautiful and hard,
247
- Whereto his invised properties did tend;
248
- The deep-green emerald, in whose fresh regard
249
- Weak sights their sickly radiance do amend;
250
- The heaven-hued sapphire and the opal blend
251
- With objects manifold: each several stone,
252
- With wit well blazon'd, smiled or made some moan.
253
-
254
- ''Lo, all these trophies of affections hot,
255
- Of pensived and subdued desires the tender,
256
- Nature hath charged me that I hoard them not,
257
- But yield them up where I myself must render,
258
- That is, to you, my origin and ender;
259
- For these, of force, must your oblations be,
260
- Since I their altar, you enpatron me.
261
-
262
- ''O, then, advance of yours that phraseless hand,
263
- Whose white weighs down the airy scale of praise;
264
- Take all these similes to your own command,
265
- Hallow'd with sighs that burning lungs did raise;
266
- What me your minister, for you obeys,
267
- Works under you; and to your audit comes
268
- Their distract parcels in combined sums.
269
-
270
- ''Lo, this device was sent me from a nun,
271
- Or sister sanctified, of holiest note;
272
- Which late her noble suit in court did shun,
273
- Whose rarest havings made the blossoms dote;
274
- For she was sought by spirits of richest coat,
275
- But kept cold distance, and did thence remove,
276
- To spend her living in eternal love.
277
-
278
- ''But, O my sweet, what labour is't to leave
279
- The thing we have not, mastering what not strives,
280
- Playing the place which did no form receive,
281
- Playing patient sports in unconstrained gyves?
282
- She that her fame so to herself contrives,
283
- The scars of battle 'scapeth by the flight,
284
- And makes her absence valiant, not her might.
285
-
286
- ''O, pardon me, in that my boast is true:
287
- The accident which brought me to her eye
288
- Upon the moment did her force subdue,
289
- And now she would the caged cloister fly:
290
- Religious love put out Religion's eye:
291
- Not to be tempted, would she be immured,
292
- And now, to tempt, all liberty procured.
293
-
294
- ''How mighty then you are, O, hear me tell!
295
- The broken bosoms that to me belong
296
- Have emptied all their fountains in my well,
297
- And mine I pour your ocean all among:
298
- I strong o'er them, and you o'er me being strong,
299
- Must for your victory us all congest,
300
- As compound love to physic your cold breast.
301
-
302
- ''My parts had power to charm a sacred nun,
303
- Who, disciplined, ay, dieted in grace,
304
- Believed her eyes when they to assail begun,
305
- All vows and consecrations giving place:
306
- O most potential love! vow, bond, nor space,
307
- In thee hath neither sting, knot, nor confine,
308
- For thou art all, and all things else are thine.
309
-
310
- ''When thou impressest, what are precepts worth
311
- Of stale example? When thou wilt inflame,
312
- How coldly those impediments stand forth
313
- Of wealth, of filial fear, law, kindred, fame!
314
- Love's arms are peace, 'gainst rule, 'gainst sense,
315
- 'gainst shame,
316
- And sweetens, in the suffering pangs it bears,
317
- The aloes of all forces, shocks, and fears.
318
-
319
- ''Now all these hearts that do on mine depend,
320
- Feeling it break, with bleeding groans they pine;
321
- And supplicant their sighs to you extend,
322
- To leave the battery that you make 'gainst mine,
323
- Lending soft audience to my sweet design,
324
- And credent soul to that strong-bonded oath
325
- That shall prefer and undertake my troth.'
326
-
327
- 'This said, his watery eyes he did dismount,
328
- Whose sights till then were levell'd on my face;
329
- Each cheek a river running from a fount
330
- With brinish current downward flow'd apace:
331
- O, how the channel to the stream gave grace!
332
- Who glazed with crystal gate the glowing roses
333
- That flame through water which their hue encloses.
334
-
335
- 'O father, what a hell of witchcraft lies
336
- In the small orb of one particular tear!
337
- But with the inundation of the eyes
338
- What rocky heart to water will not wear?
339
- What breast so cold that is not warmed here?
340
- O cleft effect! cold modesty, hot wrath,
341
- Both fire from hence and chill extincture hath.
342
-
343
- 'For, lo, his passion, but an art of craft,
344
- Even there resolved my reason into tears;
345
- There my white stole of chastity I daff'd,
346
- Shook off my sober guards and civil fears;
347
- Appear to him, as he to me appears,
348
- All melting; though our drops this difference bore,
349
- His poison'd me, and mine did him restore.
350
-
351
- 'In him a plenitude of subtle matter,
352
- Applied to cautels, all strange forms receives,
353
- Of burning blushes, or of weeping water,
354
- Or swooning paleness; and he takes and leaves,
355
- In either's aptness, as it best deceives,
356
- To blush at speeches rank to weep at woes,
357
- Or to turn white and swoon at tragic shows.
358
-
359
- 'That not a heart which in his level came
360
- Could 'scape the hail of his all-hurting aim,
361
- Showing fair nature is both kind and tame;
362
- And, veil'd in them, did win whom he would maim:
363
- Against the thing he sought he would exclaim;
364
- When he most burn'd in heart-wish'd luxury,
365
- He preach'd pure maid, and praised cold chastity.
366
-
367
- 'Thus merely with the garment of a Grace
368
- The naked and concealed fiend he cover'd;
369
- That th' unexperient gave the tempter place,
370
- Which like a cherubin above them hover'd.
371
- Who, young and simple, would not be so lover'd?
372
- Ay me! I fell; and yet do question make
373
- What I should do again for such a sake.
374
-
375
- 'O, that infected moisture of his eye,
376
- O, that false fire which in his cheek so glow'd,
377
- O, that forced thunder from his heart did fly,
378
- O, that sad breath his spongy lungs bestow'd,
379
- O, all that borrow'd motion seeming owed,
380
- Would yet again betray the fore-betray'd,
381
- And new pervert a reconciled maid!'