clusto 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +28 -2
- data/clusto.bbprojectd/Conor.bbprojectsettings +727 -0
- data/clusto.bbprojectd/Scratchpad.txt +0 -0
- data/clusto.bbprojectd/Unix Worksheet.worksheet b/data/clusto.bbprojectd/Unix → Worksheet.worksheet +0 -0
- data/clusto.bbprojectd/project.bbprojectdata +68 -0
- data/clusto.gemspec +11 -6
- data/lib/clusto.rb +8 -9
- metadata +12 -6
data/README.md
CHANGED
@@ -3,14 +3,40 @@ Clusto
|
|
3
3
|
|
4
4
|
*Simple Ruby point clustering*
|
5
5
|
|
6
|
-
|
6
|
+
In a nutshell, Clusto is a simple way to assign many points to a few clusters, ideally for rendering on a map. It's an alternative to client-side clustering which can cause performance problems and typically necessitates code duplication if your data is used by different client-side languages or frameworks (JavaScript in the browser, Objective-C on iOS, Java on Android).
|
7
|
+
|
8
|
+
If you're familiar with the [k-means][1] algorithm then Clusto's clustering process should be broadly recognisable, although it does take some liberties in the name of performance.
|
7
9
|
|
8
10
|
Usage
|
9
11
|
-----
|
10
12
|
|
13
|
+
The `Clusto.cluster` method accepts an array of `Clusto::Point` values, and returns an array of `Clusto::Cluster` objects. Each cluster has one or more `Clusto::Point` values.
|
14
|
+
|
15
|
+
|
11
16
|
```ruby
|
12
17
|
points = data.map { |p| Clusto::Point.new(p.x, p.y) }
|
13
18
|
clusters = Clusto.cluster(points)
|
14
19
|
```
|
15
20
|
|
16
|
-
|
21
|
+
The `cluster` method also accepts a `:bounds` parameter, which will determine the initial cluster positions, and a `:grid_size` parameter, the square of which determines the number of clusters. By default, the `:bounds` is set to the minimum bounding rectangle of the supplied points and the `:grid_size` is set to `8`.
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
bounds = [40.51, -74.39, 40.84, -73.44]
|
25
|
+
clusters = Clusto.cluster(points, :bounds => bounds, :grid_size => 10)
|
26
|
+
```
|
27
|
+
|
28
|
+
Each `point` is assigned to the nearest cluster using the [Haversine formula][2], but you can change the `:distance_method` to `:euclidian` if you wish:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
clusters = Clusto.cluster(points, :distance_method => :euclidian)
|
32
|
+
```
|
33
|
+
|
34
|
+
To keep track of points, you can assign each point an optional `tag` value:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
tag = 123
|
38
|
+
point = Clusto::Point(x, y, tag)
|
39
|
+
```
|
40
|
+
|
41
|
+
[1]: http://en.wikipedia.org/wiki/K-means_clustering
|
42
|
+
[2]: http://en.wikipedia.org/wiki/Haversine_formula
|
@@ -0,0 +1,727 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>EmbeddedEditorHidden:Conor</key>
|
6
|
+
<false/>
|
7
|
+
<key>ExpandedEditorWidth:Conor:displays([(0, 0), (1440, 900)])</key>
|
8
|
+
<integer>979</integer>
|
9
|
+
<key>ExpandedItems:Conor</key>
|
10
|
+
<array>
|
11
|
+
<string>4A878945-2576-4616-866A-51179A76DB90</string>
|
12
|
+
<dict>
|
13
|
+
<key>BookmarkData</key>
|
14
|
+
<data>
|
15
|
+
Ym9va7wDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
16
|
+
AAAAAAAAAAAAxAIAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
17
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
18
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
19
|
+
bGliABwAAAABBgAABAAAABQAAAAkAAAANAAAAEgAAABUAAAAZAAA
|
20
|
+
AAgAAAAEAwAAU3wAAAAAAAAIAAAABAMAAK35CgAAAAAACAAAAAQD
|
21
|
+
AADdbDEAAAAAAAgAAAAEAwAA9d9sAwAAAAAIAAAABAMAAIaZVAQA
|
22
|
+
AAAACAAAAAQDAADrc0QHAAAAAAgAAAAEAwAAhnREBwAAAAAcAAAA
|
23
|
+
AQYAAJQAAACkAAAAtAAAAMQAAADUAAAA5AAAAPQAAAAIAAAAAAQA
|
24
|
+
AEG2KF6nAAAAGAAAAAECAAACAAAAAAAAAA8AAAAAAAAAAAAAAAAA
|
25
|
+
AAAEAAAAAwMAAAUAAAAEAAAAAwMAAPYBAAAJAAAAAQEAAE1hY2lu
|
26
|
+
dG9zaAAAAAgAAAAEAwAAAFBRzjYAAAAIAAAAAAQAAEGuaDucAAAA
|
27
|
+
JAAAAAEBAAA5RTFFQzM5Qi1DRjVCLTNENDEtQTZGMS1FRjkyNzFC
|
28
|
+
Rjk3OEQYAAAAAQIAAIEAAAABAAgA7z8AAAEACAAAAAAAAAAAAAEA
|
29
|
+
AAABAQAALwAAAAAAAAABBQAAuAAAAAECAAA4MDlkZTY3MDZkNmU2
|
30
|
+
ZDNjMDdkNTFlNDY1MDNjMGE2MzBlNjk0Yzg1OzAwMDAwMDAwOzAw
|
31
|
+
MDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJl
|
32
|
+
YWQtd3JpdGU7MDAwMDAwMDE7MDEwMDAwMDU7MDAwMDAwMDAwNzQ0
|
33
|
+
NzQ4NjsvdXNlcnMvY29ub3IvZHJvcGJveC9kZXZlbG9wbWVudC9y
|
34
|
+
dWJ5L2NsdXN0by9saWIAwAAAAP7///8BAAAAAAAAAA8AAAAEEAAA
|
35
|
+
cAAAAAAAAAAFEAAABAEAAAAAAAAQEAAAOAEAAAAAAABAEAAAKAEA
|
36
|
+
AAAAAAACIAAA8AEAAAAAAAAQIAAAcAEAAAAAAAARIAAApAEAAAAA
|
37
|
+
AAASIAAAhAEAAAAAAAATIAAAlAEAAAAAAAAgIAAA0AEAAAAAAAAw
|
38
|
+
IAAA/AEAAAAAAAABwAAAWAEAAAAAAAARwAAAFAAAAAAAAAASwAAA
|
39
|
+
ZAEAAAAAAACA8AAABAIAAAAAAAA=
|
40
|
+
</data>
|
41
|
+
<key>FileURL</key>
|
42
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/</string>
|
43
|
+
<key>TypeID</key>
|
44
|
+
<string>_CFileLocator</string>
|
45
|
+
<key>Version</key>
|
46
|
+
<integer>1</integer>
|
47
|
+
</dict>
|
48
|
+
<dict>
|
49
|
+
<key>BookmarkData</key>
|
50
|
+
<data>
|
51
|
+
Ym9va9wDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
52
|
+
AAAAAAAAAAAA5AIAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
53
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
54
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
55
|
+
bGliACAAAAABBgAABAAAABQAAAAkAAAANAAAAEgAAABUAAAAZAAA
|
56
|
+
AFQAAAAIAAAABAMAAFN8AAAAAAAACAAAAAQDAACt+QoAAAAAAAgA
|
57
|
+
AAAEAwAA3WwxAAAAAAAIAAAABAMAAPXfbAMAAAAACAAAAAQDAACG
|
58
|
+
mVQEAAAAAAgAAAAEAwAA63NEBwAAAAAIAAAABAMAAIZ0RAcAAAAA
|
59
|
+
CAAAAAQDAAAjeUQHAAAAACAAAAABBgAAmAAAAKgAAAC4AAAAyAAA
|
60
|
+
ANgAAADoAAAA+AAAAAgBAAAIAAAAAAQAAEG2KGYMAAAAGAAAAAEC
|
61
|
+
AAACAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAEAAAAAwMAAAYAAAAE
|
62
|
+
AAAAAwMAAPYBAAAJAAAAAQEAAE1hY2ludG9zaAAAAAgAAAAEAwAA
|
63
|
+
AFBRzjYAAAAIAAAAAAQAAEGuaDucAAAAJAAAAAEBAAA5RTFFQzM5
|
64
|
+
Qi1DRjVCLTNENDEtQTZGMS1FRjkyNzFCRjk3OEQYAAAAAQIAAIEA
|
65
|
+
AAABAAgA7z8AAAEACAAAAAAAAAAAAAEAAAABAQAALwAAAAAAAAAB
|
66
|
+
BQAAvwAAAAECAAAyNDBiZmU4ZTAxNjY0OGYyMjI0ZmRkYzliMzJl
|
67
|
+
MTQwMmM5YzA2YjM2OzAwMDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7
|
68
|
+
Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGU7MDAwMDAw
|
69
|
+
MDE7MDEwMDAwMDU7MDAwMDAwMDAwNzQ0NzkyMzsvdXNlcnMvY29u
|
70
|
+
b3IvZHJvcGJveC9kZXZlbG9wbWVudC9ydWJ5L2NsdXN0by9saWIv
|
71
|
+
Y2x1c3RvAADAAAAA/v///wEAAAAAAAAADwAAAAQQAABwAAAAAAAA
|
72
|
+
AAUQAAAYAQAAAAAAABAQAABQAQAAAAAAAEAQAABAAQAAAAAAAAIg
|
73
|
+
AAAIAgAAAAAAABAgAACIAQAAAAAAABEgAAC8AQAAAAAAABIgAACc
|
74
|
+
AQAAAAAAABMgAACsAQAAAAAAACAgAADoAQAAAAAAADAgAAAUAgAA
|
75
|
+
AAAAAAHAAABwAQAAAAAAABHAAAAUAAAAAAAAABLAAAB8AQAAAAAA
|
76
|
+
AIDwAAAcAgAAAAAAAA==
|
77
|
+
</data>
|
78
|
+
<key>FileURL</key>
|
79
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/</string>
|
80
|
+
<key>TypeID</key>
|
81
|
+
<string>_CFileLocator</string>
|
82
|
+
<key>Version</key>
|
83
|
+
<integer>1</integer>
|
84
|
+
</dict>
|
85
|
+
</array>
|
86
|
+
<key>FileFilterMode:Conor</key>
|
87
|
+
<integer>1</integer>
|
88
|
+
<key>OpenDocuments:Conor</key>
|
89
|
+
<array>
|
90
|
+
<dict>
|
91
|
+
<key>BookmarkData</key>
|
92
|
+
<data>
|
93
|
+
Ym9va/gDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
94
|
+
AAAAAAAAAAAA6AIAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
95
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
96
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAA4AAAABAQAA
|
97
|
+
Y2x1c3RvLmdlbXNwZWMAABwAAAABBgAABAAAABQAAAAkAAAANAAA
|
98
|
+
AEgAAABUAAAAZAAAAAgAAAAEAwAAU3wAAAAAAAAIAAAABAMAAK35
|
99
|
+
CgAAAAAACAAAAAQDAADdbDEAAAAAAAgAAAAEAwAA9d9sAwAAAAAI
|
100
|
+
AAAABAMAAIaZVAQAAAAACAAAAAQDAADrc0QHAAAAAAgAAAAEAwAA
|
101
|
+
b3REBwAAAAAcAAAAAQYAAKAAAACwAAAAwAAAANAAAADgAAAA8AAA
|
102
|
+
AAABAAAIAAAAAAQAAEG2KF6JAAAAGAAAAAECAAABAAAAAAAAAA8A
|
103
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAQUAAAQAAAADAwAAAQAAAAQAAAAD
|
104
|
+
AwAABQAAAAQAAAADAwAA9gEAAAkAAAABAQAATWFjaW50b3NoAAAA
|
105
|
+
CAAAAAQDAAAAUFHONgAAAAgAAAAABAAAQa5oO5wAAAAkAAAAAQEA
|
106
|
+
ADlFMUVDMzlCLUNGNUItM0Q0MS1BNkYxLUVGOTI3MUJGOTc4RBgA
|
107
|
+
AAABAgAAgQAAAAEACADvPwAAAQAIAAAAAAAAAAAAAQAAAAEBAAAv
|
108
|
+
AAAAwwAAAAECAAA2MzYyMzM0NjBkMTc0YWMwMzI3NDBlYzQyZDA5
|
109
|
+
OWIyNjM3OTkxM2U2OzAwMDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7
|
110
|
+
Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGU7MDAwMDAw
|
111
|
+
MDE7MDEwMDAwMDU7MDAwMDAwMDAwNzQ0NzQ2ZjsvdXNlcnMvY29u
|
112
|
+
b3IvZHJvcGJveC9kZXZlbG9wbWVudC9ydWJ5L2NsdXN0by9jbHVz
|
113
|
+
dG8uZ2Vtc3BlYwAA2AAAAP7///8BAAAAAAAAABEAAAAEEAAAfAAA
|
114
|
+
AAAAAAAFEAAAEAEAAAAAAAAQEAAARAEAAAAAAABAEAAANAEAAAAA
|
115
|
+
AABVEAAAbAEAAAAAAABWEAAAZAEAAAAAAAACIAAAEAIAAAAAAAAQ
|
116
|
+
IAAAkAEAAAAAAAARIAAAxAEAAAAAAAASIAAApAEAAAAAAAATIAAA
|
117
|
+
tAEAAAAAAAAgIAAA8AEAAAAAAAAwIAAAZAEAAAAAAAABwAAAeAEA
|
118
|
+
AAAAAAARwAAAFAAAAAAAAAASwAAAhAEAAAAAAACA8AAAHAIAAAAA
|
119
|
+
AAA=
|
120
|
+
</data>
|
121
|
+
<key>FileURL</key>
|
122
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/clusto.gemspec</string>
|
123
|
+
<key>RelativePath</key>
|
124
|
+
<string>./clusto.gemspec</string>
|
125
|
+
<key>TypeID</key>
|
126
|
+
<string>_CFileLocator</string>
|
127
|
+
<key>Version</key>
|
128
|
+
<integer>1</integer>
|
129
|
+
</dict>
|
130
|
+
<dict>
|
131
|
+
<key>BookmarkData</key>
|
132
|
+
<data>
|
133
|
+
Ym9vaxgEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
134
|
+
AAAAAAAAAAAACAMAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
135
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
136
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
137
|
+
bGliAAkAAAABAQAAY2x1c3RvLnJiAAAAIAAAAAEGAAAEAAAAFAAA
|
138
|
+
ACQAAAA0AAAASAAAAFQAAABkAAAAcAAAAAgAAAAEAwAAU3wAAAAA
|
139
|
+
AAAIAAAABAMAAK35CgAAAAAACAAAAAQDAADdbDEAAAAAAAgAAAAE
|
140
|
+
AwAA9d9sAwAAAAAIAAAABAMAAIaZVAQAAAAACAAAAAQDAADrc0QH
|
141
|
+
AAAAAAgAAAAEAwAAhnREBwAAAAAIAAAABAMAAJZ0RAcAAAAAIAAA
|
142
|
+
AAEGAACsAAAAvAAAAMwAAADcAAAA7AAAAPwAAAAMAQAAHAEAAAgA
|
143
|
+
AAAABAAAQbYoXsEAAAAYAAAAAQIAAAEAAAAAAAAADwAAAAAAAAAA
|
144
|
+
AAAAAAAAAAAAAAABBQAABAAAAAMDAAACAAAABAAAAAMDAAAGAAAA
|
145
|
+
BAAAAAMDAAD2AQAACQAAAAEBAABNYWNpbnRvc2gAAAAIAAAABAMA
|
146
|
+
AABQUc42AAAACAAAAAAEAABBrmg7nAAAACQAAAABAQAAOUUxRUMz
|
147
|
+
OUItQ0Y1Qi0zRDQxLUE2RjEtRUY5MjcxQkY5NzhEGAAAAAECAACB
|
148
|
+
AAAAAQAIAO8/AAABAAgAAAAAAAAAAAABAAAAAQEAAC8AAADCAAAA
|
149
|
+
AQIAADI5NDI2ODYwNWRhMTkyYjlmNTk3NTRlYmMyYzU4YzBkMmQ4
|
150
|
+
NTZhMWQ7MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBw
|
151
|
+
bGUuYXBwLXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAw
|
152
|
+
MDAwNTswMDAwMDAwMDA3NDQ3NDk2Oy91c2Vycy9jb25vci9kcm9w
|
153
|
+
Ym94L2RldmVsb3BtZW50L3J1YnkvY2x1c3RvL2xpYi9jbHVzdG8u
|
154
|
+
cmIAAADYAAAA/v///wEAAAAAAAAAEQAAAAQQAACEAAAAAAAAAAUQ
|
155
|
+
AAAsAQAAAAAAABAQAABkAQAAAAAAAEAQAABUAQAAAAAAAFUQAACM
|
156
|
+
AQAAAAAAAFYQAACEAQAAAAAAAAIgAAAwAgAAAAAAABAgAACwAQAA
|
157
|
+
AAAAABEgAADkAQAAAAAAABIgAADEAQAAAAAAABMgAADUAQAAAAAA
|
158
|
+
ACAgAAAQAgAAAAAAADAgAACEAQAAAAAAAAHAAACYAQAAAAAAABHA
|
159
|
+
AAAUAAAAAAAAABLAAACkAQAAAAAAAIDwAAA8AgAAAAAAAA==
|
160
|
+
</data>
|
161
|
+
<key>FileURL</key>
|
162
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto.rb</string>
|
163
|
+
<key>RelativePath</key>
|
164
|
+
<string>./lib/clusto.rb</string>
|
165
|
+
<key>TypeID</key>
|
166
|
+
<string>_CFileLocator</string>
|
167
|
+
<key>Version</key>
|
168
|
+
<integer>1</integer>
|
169
|
+
</dict>
|
170
|
+
<dict>
|
171
|
+
<key>BookmarkData</key>
|
172
|
+
<data>
|
173
|
+
Ym9vazgEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
174
|
+
AAAAAAAAAAAAKAMAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
175
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
176
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
177
|
+
bGliAAsAAAABAQAAZGlzdGFuY2UucmIAJAAAAAEGAAAEAAAAFAAA
|
178
|
+
ACQAAAA0AAAASAAAAFQAAABkAAAAVAAAAHAAAAAIAAAABAMAAFN8
|
179
|
+
AAAAAAAACAAAAAQDAACt+QoAAAAAAAgAAAAEAwAA3WwxAAAAAAAI
|
180
|
+
AAAABAMAAPXfbAMAAAAACAAAAAQDAACGmVQEAAAAAAgAAAAEAwAA
|
181
|
+
63NEBwAAAAAIAAAABAMAAIZ0RAcAAAAACAAAAAQDAAAjeUQHAAAA
|
182
|
+
AAgAAAAEAwAACZBFBwAAAAAkAAAAAQYAALAAAADAAAAA0AAAAOAA
|
183
|
+
AADwAAAAAAEAABABAAAgAQAAMAEAAAgAAAAABAAAQbYpyXEAAAAY
|
184
|
+
AAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAABBQAA
|
185
|
+
BAAAAAMDAAADAAAABAAAAAMDAAAHAAAABAAAAAMDAAD2AQAACQAA
|
186
|
+
AAEBAABNYWNpbnRvc2gAAAAIAAAABAMAAABQUc42AAAACAAAAAAE
|
187
|
+
AABBrmg7nAAAACQAAAABAQAAOUUxRUMzOUItQ0Y1Qi0zRDQxLUE2
|
188
|
+
RjEtRUY5MjcxQkY5NzhEGAAAAAECAACBAAAAAQAIAO8/AAABAAgA
|
189
|
+
AAAAAAAAAAABAAAAAQEAAC8AAADLAAAAAQIAADY4N2UzOGJhM2Q2
|
190
|
+
Y2JlYmFhNzM3MGFlZTdlZTU5ZTk2Y2RkNWY3YmU7MDAwMDAwMDA7
|
191
|
+
MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRib3gu
|
192
|
+
cmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwNTswMDAwMDAwMDA3
|
193
|
+
NDU5MDA5Oy91c2Vycy9jb25vci9kcm9wYm94L2RldmVsb3BtZW50
|
194
|
+
L3J1YnkvY2x1c3RvL2xpYi9jbHVzdG8vZGlzdGFuY2UucmIAANgA
|
195
|
+
AAD+////AQAAAAAAAAARAAAABBAAAIQAAAAAAAAABRAAAEABAAAA
|
196
|
+
AAAAEBAAAHwBAAAAAAAAQBAAAGwBAAAAAAAAVRAAAKQBAAAAAAAA
|
197
|
+
VhAAAJwBAAAAAAAAAiAAAEgCAAAAAAAAECAAAMgBAAAAAAAAESAA
|
198
|
+
APwBAAAAAAAAEiAAANwBAAAAAAAAEyAAAOwBAAAAAAAAICAAACgC
|
199
|
+
AAAAAAAAMCAAAJwBAAAAAAAAAcAAALABAAAAAAAAEcAAABQAAAAA
|
200
|
+
AAAAEsAAALwBAAAAAAAAgPAAAFQCAAAAAAAA
|
201
|
+
</data>
|
202
|
+
<key>FileURL</key>
|
203
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/distance.rb</string>
|
204
|
+
<key>RelativePath</key>
|
205
|
+
<string>./lib/clusto/distance.rb</string>
|
206
|
+
<key>TypeID</key>
|
207
|
+
<string>_CFileLocator</string>
|
208
|
+
<key>Version</key>
|
209
|
+
<integer>1</integer>
|
210
|
+
</dict>
|
211
|
+
<dict>
|
212
|
+
<key>BookmarkData</key>
|
213
|
+
<data>
|
214
|
+
Ym9vazgEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
215
|
+
AAAAAAAAAAAAKAMAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
216
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
217
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
218
|
+
bGliAAoAAAABAQAAY2x1c3Rlci5yYgAAJAAAAAEGAAAEAAAAFAAA
|
219
|
+
ACQAAAA0AAAASAAAAFQAAABkAAAAVAAAAHAAAAAIAAAABAMAAFN8
|
220
|
+
AAAAAAAACAAAAAQDAACt+QoAAAAAAAgAAAAEAwAA3WwxAAAAAAAI
|
221
|
+
AAAABAMAAPXfbAMAAAAACAAAAAQDAACGmVQEAAAAAAgAAAAEAwAA
|
222
|
+
63NEBwAAAAAIAAAABAMAAIZ0RAcAAAAACAAAAAQDAAAjeUQHAAAA
|
223
|
+
AAgAAAAEAwAADHZEBwAAAAAkAAAAAQYAALAAAADAAAAA0AAAAOAA
|
224
|
+
AADwAAAAAAEAABABAAAgAQAAMAEAAAgAAAAABAAAQbYoYL4AAAAY
|
225
|
+
AAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAABBQAA
|
226
|
+
BAAAAAMDAAADAAAABAAAAAMDAAAHAAAABAAAAAMDAAD2AQAACQAA
|
227
|
+
AAEBAABNYWNpbnRvc2gAAAAIAAAABAMAAABQUc42AAAACAAAAAAE
|
228
|
+
AABBrmg7nAAAACQAAAABAQAAOUUxRUMzOUItQ0Y1Qi0zRDQxLUE2
|
229
|
+
RjEtRUY5MjcxQkY5NzhEGAAAAAECAACBAAAAAQAIAO8/AAABAAgA
|
230
|
+
AAAAAAAAAAABAAAAAQEAAC8AAADKAAAAAQIAADE1MjNhOWU2NjMz
|
231
|
+
OTE0NDM3OThhN2NjODYyMzZjYzBlZDdlZjI2ZDA7MDAwMDAwMDA7
|
232
|
+
MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRib3gu
|
233
|
+
cmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwNTswMDAwMDAwMDA3
|
234
|
+
NDQ3NjBjOy91c2Vycy9jb25vci9kcm9wYm94L2RldmVsb3BtZW50
|
235
|
+
L3J1YnkvY2x1c3RvL2xpYi9jbHVzdG8vY2x1c3Rlci5yYgAAANgA
|
236
|
+
AAD+////AQAAAAAAAAARAAAABBAAAIQAAAAAAAAABRAAAEABAAAA
|
237
|
+
AAAAEBAAAHwBAAAAAAAAQBAAAGwBAAAAAAAAVRAAAKQBAAAAAAAA
|
238
|
+
VhAAAJwBAAAAAAAAAiAAAEgCAAAAAAAAECAAAMgBAAAAAAAAESAA
|
239
|
+
APwBAAAAAAAAEiAAANwBAAAAAAAAEyAAAOwBAAAAAAAAICAAACgC
|
240
|
+
AAAAAAAAMCAAAJwBAAAAAAAAAcAAALABAAAAAAAAEcAAABQAAAAA
|
241
|
+
AAAAEsAAALwBAAAAAAAAgPAAAFQCAAAAAAAA
|
242
|
+
</data>
|
243
|
+
<key>FileURL</key>
|
244
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/cluster.rb</string>
|
245
|
+
<key>RelativePath</key>
|
246
|
+
<string>./lib/clusto/cluster.rb</string>
|
247
|
+
<key>TypeID</key>
|
248
|
+
<string>_CFileLocator</string>
|
249
|
+
<key>Version</key>
|
250
|
+
<integer>1</integer>
|
251
|
+
</dict>
|
252
|
+
<dict>
|
253
|
+
<key>BookmarkData</key>
|
254
|
+
<data>
|
255
|
+
Ym9va/ADAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
256
|
+
AAAAAAAAAAAA4AIAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
257
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
258
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAkAAAABAQAA
|
259
|
+
UkVBRE1FLm1kAAAAHAAAAAEGAAAEAAAAFAAAACQAAAA0AAAASAAA
|
260
|
+
AFQAAABkAAAACAAAAAQDAABTfAAAAAAAAAgAAAAEAwAArfkKAAAA
|
261
|
+
AAAIAAAABAMAAN1sMQAAAAAACAAAAAQDAAD132wDAAAAAAgAAAAE
|
262
|
+
AwAAhplUBAAAAAAIAAAABAMAAOtzRAcAAAAACAAAAAQDAAAeeEQH
|
263
|
+
AAAAABwAAAABBgAAnAAAAKwAAAC8AAAAzAAAANwAAADsAAAA/AAA
|
264
|
+
AAgAAAAABAAAQbYnWk4AAAAYAAAAAQIAAAEAAAAAAAAADwAAAAAA
|
265
|
+
AAAAAAAAAAAAAAAAAAABBQAABAAAAAMDAAABAAAABAAAAAMDAAAF
|
266
|
+
AAAABAAAAAMDAAD2AQAACQAAAAEBAABNYWNpbnRvc2gAAAAIAAAA
|
267
|
+
BAMAAABQUc42AAAACAAAAAAEAABBrmg7nAAAACQAAAABAQAAOUUx
|
268
|
+
RUMzOUItQ0Y1Qi0zRDQxLUE2RjEtRUY5MjcxQkY5NzhEGAAAAAEC
|
269
|
+
AACBAAAAAQAIAO8/AAABAAgAAAAAAAAAAAABAAAAAQEAAC8AAAC+
|
270
|
+
AAAAAQIAADhlMjY5MDQ1MGE5YmFmMDkzOWMzYWQzNjZmMTJmNTAy
|
271
|
+
MGVlMTJjZTE7MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAyMDtjb20u
|
272
|
+
YXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTsw
|
273
|
+
MTAwMDAwNTswMDAwMDAwMDA3NDQ3ODFlOy91c2Vycy9jb25vci9k
|
274
|
+
cm9wYm94L2RldmVsb3BtZW50L3J1YnkvY2x1c3RvL3JlYWRtZS5t
|
275
|
+
ZAAAANgAAAD+////AQAAAAAAAAARAAAABBAAAHgAAAAAAAAABRAA
|
276
|
+
AAwBAAAAAAAAEBAAAEABAAAAAAAAQBAAADABAAAAAAAAVRAAAGgB
|
277
|
+
AAAAAAAAVhAAAGABAAAAAAAAAiAAAAwCAAAAAAAAECAAAIwBAAAA
|
278
|
+
AAAAESAAAMABAAAAAAAAEiAAAKABAAAAAAAAEyAAALABAAAAAAAA
|
279
|
+
ICAAAOwBAAAAAAAAMCAAAGABAAAAAAAAAcAAAHQBAAAAAAAAEcAA
|
280
|
+
ABQAAAAAAAAAEsAAAIABAAAAAAAAgPAAABgCAAAAAAAA
|
281
|
+
</data>
|
282
|
+
<key>FileURL</key>
|
283
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/README.md</string>
|
284
|
+
<key>RelativePath</key>
|
285
|
+
<string>./README.md</string>
|
286
|
+
<key>TypeID</key>
|
287
|
+
<string>_CFileLocator</string>
|
288
|
+
<key>Version</key>
|
289
|
+
<integer>1</integer>
|
290
|
+
</dict>
|
291
|
+
<dict>
|
292
|
+
<key>BookmarkData</key>
|
293
|
+
<data>
|
294
|
+
Ym9vazAEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
295
|
+
AAAAAAAAAAAAIAMAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
296
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
297
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAMAAAABAQAA
|
298
|
+
bGliAAgAAAABAQAAcG9pbnQucmIkAAAAAQYAAAQAAAAUAAAAJAAA
|
299
|
+
ADQAAABIAAAAVAAAAGQAAABUAAAAcAAAAAgAAAAEAwAAU3wAAAAA
|
300
|
+
AAAIAAAABAMAAK35CgAAAAAACAAAAAQDAADdbDEAAAAAAAgAAAAE
|
301
|
+
AwAA9d9sAwAAAAAIAAAABAMAAIaZVAQAAAAACAAAAAQDAADrc0QH
|
302
|
+
AAAAAAgAAAAEAwAAhnREBwAAAAAIAAAABAMAACN5RAcAAAAACAAA
|
303
|
+
AAQDAAAIdkQHAAAAACQAAAABBgAArAAAALwAAADMAAAA3AAAAOwA
|
304
|
+
AAD8AAAADAEAABwBAAAsAQAACAAAAAAEAABBtihgswAAABgAAAAB
|
305
|
+
AgAAAQAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEFAAAEAAAA
|
306
|
+
AwMAAAMAAAAEAAAAAwMAAAcAAAAEAAAAAwMAAPYBAAAJAAAAAQEA
|
307
|
+
AE1hY2ludG9zaAAAAAgAAAAEAwAAAFBRzjYAAAAIAAAAAAQAAEGu
|
308
|
+
aDucAAAAJAAAAAEBAAA5RTFFQzM5Qi1DRjVCLTNENDEtQTZGMS1F
|
309
|
+
RjkyNzFCRjk3OEQYAAAAAQIAAIEAAAABAAgA7z8AAAEACAAAAAAA
|
310
|
+
AAAAAAEAAAABAQAALwAAAMgAAAABAgAAMjQzOTU5ZTMzOGY1NGQ4
|
311
|
+
YzM2MWZjZTdkNzdkYzVmYzJkOWNjMmRhOTswMDAwMDAwMDswMDAw
|
312
|
+
MDAwMDAwMDAwMDIwO2NvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFk
|
313
|
+
LXdyaXRlOzAwMDAwMDAxOzAxMDAwMDA1OzAwMDAwMDAwMDc0NDc2
|
314
|
+
MDg7L3VzZXJzL2Nvbm9yL2Ryb3Bib3gvZGV2ZWxvcG1lbnQvcnVi
|
315
|
+
eS9jbHVzdG8vbGliL2NsdXN0by9wb2ludC5yYgDYAAAA/v///wEA
|
316
|
+
AAAAAAAAEQAAAAQQAACAAAAAAAAAAAUQAAA8AQAAAAAAABAQAAB4
|
317
|
+
AQAAAAAAAEAQAABoAQAAAAAAAFUQAACgAQAAAAAAAFYQAACYAQAA
|
318
|
+
AAAAAAIgAABEAgAAAAAAABAgAADEAQAAAAAAABEgAAD4AQAAAAAA
|
319
|
+
ABIgAADYAQAAAAAAABMgAADoAQAAAAAAACAgAAAkAgAAAAAAADAg
|
320
|
+
AACYAQAAAAAAAAHAAACsAQAAAAAAABHAAAAUAAAAAAAAABLAAAC4
|
321
|
+
AQAAAAAAAIDwAABQAgAAAAAAAA==
|
322
|
+
</data>
|
323
|
+
<key>FileURL</key>
|
324
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/point.rb</string>
|
325
|
+
<key>RelativePath</key>
|
326
|
+
<string>./lib/clusto/point.rb</string>
|
327
|
+
<key>TypeID</key>
|
328
|
+
<string>_CFileLocator</string>
|
329
|
+
<key>Version</key>
|
330
|
+
<integer>1</integer>
|
331
|
+
</dict>
|
332
|
+
<dict>
|
333
|
+
<key>BookmarkData</key>
|
334
|
+
<data>
|
335
|
+
Ym9va+gDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
336
|
+
AAAAAAAAAAAA2AIAAAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAENv
|
337
|
+
bm9yAAAABwAAAAEBAABEcm9wYm94AAsAAAABAQAARGV2ZWxvcG1l
|
338
|
+
bnQABAAAAAEBAABSdWJ5BgAAAAEBAABjbHVzdG8AAAcAAAABAQAA
|
339
|
+
TElDRU5TRQAcAAAAAQYAAAQAAAAUAAAAJAAAADQAAABIAAAAVAAA
|
340
|
+
AGQAAAAIAAAABAMAAFN8AAAAAAAACAAAAAQDAACt+QoAAAAAAAgA
|
341
|
+
AAAEAwAA3WwxAAAAAAAIAAAABAMAAPXfbAMAAAAACAAAAAQDAACG
|
342
|
+
mVQEAAAAAAgAAAAEAwAA63NEBwAAAAAIAAAABAMAABp4RAcAAAAA
|
343
|
+
HAAAAAEGAACYAAAAqAAAALgAAADIAAAA2AAAAOgAAAD4AAAACAAA
|
344
|
+
AAAEAABBtidaTgAAABgAAAABAgAAAQAAAAAAAAAPAAAAAAAAAAAA
|
345
|
+
AAAAAAAAAAAAAAEFAAAEAAAAAwMAAAEAAAAEAAAAAwMAAAUAAAAE
|
346
|
+
AAAAAwMAAPYBAAAJAAAAAQEAAE1hY2ludG9zaAAAAAgAAAAEAwAA
|
347
|
+
AFBRzjYAAAAIAAAAAAQAAEGuaDucAAAAJAAAAAEBAAA5RTFFQzM5
|
348
|
+
Qi1DRjVCLTNENDEtQTZGMS1FRjkyNzFCRjk3OEQYAAAAAQIAAIEA
|
349
|
+
AAABAAgA7z8AAAEACAAAAAAAAAAAAAEAAAABAQAALwAAALwAAAAB
|
350
|
+
AgAANDgxZjQxZTU2MDJmZjg5MWMzNzc1ZjNmMTg3NzZkNTYyZjQ2
|
351
|
+
YTFiOTswMDAwMDAwMDswMDAwMDAwMDAwMDAwMDIwO2NvbS5hcHBs
|
352
|
+
ZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlOzAwMDAwMDAxOzAxMDAw
|
353
|
+
MDA1OzAwMDAwMDAwMDc0NDc4MWE7L3VzZXJzL2Nvbm9yL2Ryb3Bi
|
354
|
+
b3gvZGV2ZWxvcG1lbnQvcnVieS9jbHVzdG8vbGljZW5zZQDYAAAA
|
355
|
+
/v///wEAAAAAAAAAEQAAAAQQAAB0AAAAAAAAAAUQAAAIAQAAAAAA
|
356
|
+
ABAQAAA8AQAAAAAAAEAQAAAsAQAAAAAAAFUQAABkAQAAAAAAAFYQ
|
357
|
+
AABcAQAAAAAAAAIgAAAIAgAAAAAAABAgAACIAQAAAAAAABEgAAC8
|
358
|
+
AQAAAAAAABIgAACcAQAAAAAAABMgAACsAQAAAAAAACAgAADoAQAA
|
359
|
+
AAAAADAgAABcAQAAAAAAAAHAAABwAQAAAAAAABHAAAAUAAAAAAAA
|
360
|
+
ABLAAAB8AQAAAAAAAIDwAAAUAgAAAAAAAA==
|
361
|
+
</data>
|
362
|
+
<key>FileURL</key>
|
363
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/LICENSE</string>
|
364
|
+
<key>RelativePath</key>
|
365
|
+
<string>./LICENSE</string>
|
366
|
+
<key>TypeID</key>
|
367
|
+
<string>_CFileLocator</string>
|
368
|
+
<key>Version</key>
|
369
|
+
<integer>1</integer>
|
370
|
+
</dict>
|
371
|
+
</array>
|
372
|
+
<key>OpenDocumentsExpanded</key>
|
373
|
+
<true/>
|
374
|
+
<key>OpenDocumentsVisible</key>
|
375
|
+
<true/>
|
376
|
+
<key>ProjectViewVisible</key>
|
377
|
+
<true/>
|
378
|
+
<key>RecentItems:Conor</key>
|
379
|
+
<array>
|
380
|
+
<dict>
|
381
|
+
<key>Date</key>
|
382
|
+
<date>2012-10-14T23:51:41Z</date>
|
383
|
+
<key>Location</key>
|
384
|
+
<dict>
|
385
|
+
<key>BookmarkData</key>
|
386
|
+
<data>
|
387
|
+
Ym9va9QDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
388
|
+
AAAAAAAAAAAAAAAAAAAA3AIAAAUAAAABAQAAVXNlcnMA
|
389
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
390
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
391
|
+
BgAAAAEBAABjbHVzdG8AAA4AAAABAQAAY2x1c3RvLmdl
|
392
|
+
bXNwZWMAABwAAAABBgAABAAAABQAAAAkAAAANAAAAEgA
|
393
|
+
AABUAAAAZAAAAAgAAAAEAwAAU3wAAAAAAAAIAAAABAMA
|
394
|
+
AK35CgAAAAAACAAAAAQDAADdbDEAAAAAAAgAAAAEAwAA
|
395
|
+
9d9sAwAAAAAIAAAABAMAAIaZVAQAAAAACAAAAAQDAADr
|
396
|
+
c0QHAAAAAAgAAAAEAwAAb3REBwAAAAAcAAAAAQYAAKAA
|
397
|
+
AACwAAAAwAAAANAAAADgAAAA8AAAAAABAAAIAAAAAAQA
|
398
|
+
AEG2KF6JAAAAGAAAAAECAAABAAAAAAAAAA8AAAAAAAAA
|
399
|
+
AAAAAAAAAAAEAAAAAwMAAAUAAAAEAAAAAwMAAPYBAAAJ
|
400
|
+
AAAAAQEAAE1hY2ludG9zaAAAAAgAAAAEAwAAAFBRzjYA
|
401
|
+
AAAIAAAAAAQAAEGuaDucAAAAJAAAAAEBAAA5RTFFQzM5
|
402
|
+
Qi1DRjVCLTNENDEtQTZGMS1FRjkyNzFCRjk3OEQYAAAA
|
403
|
+
AQIAAIEAAAABAAgA7z8AAAEACAAAAAAAAAAAAAEAAAAB
|
404
|
+
AQAALwAAAAAAAAABBQAAwwAAAAECAAA2MzYyMzM0NjBk
|
405
|
+
MTc0YWMwMzI3NDBlYzQyZDA5OWIyNjM3OTkxM2U2OzAw
|
406
|
+
MDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxl
|
407
|
+
LmFwcC1zYW5kYm94LnJlYWQtd3JpdGU7MDAwMDAwMDE7
|
408
|
+
MDEwMDAwMDU7MDAwMDAwMDAwNzQ0NzQ2ZjsvdXNlcnMv
|
409
|
+
Y29ub3IvZHJvcGJveC9kZXZlbG9wbWVudC9ydWJ5L2Ns
|
410
|
+
dXN0by9jbHVzdG8uZ2Vtc3BlYwAAwAAAAP7///8BAAAA
|
411
|
+
AAAAAA8AAAAEEAAAfAAAAAAAAAAFEAAAEAEAAAAAAAAQ
|
412
|
+
EAAARAEAAAAAAABAEAAANAEAAAAAAAACIAAA/AEAAAAA
|
413
|
+
AAAQIAAAfAEAAAAAAAARIAAAsAEAAAAAAAASIAAAkAEA
|
414
|
+
AAAAAAATIAAAoAEAAAAAAAAgIAAA3AEAAAAAAAAwIAAA
|
415
|
+
CAIAAAAAAAABwAAAZAEAAAAAAAARwAAAFAAAAAAAAAAS
|
416
|
+
wAAAcAEAAAAAAACA8AAAEAIAAAAAAAA=
|
417
|
+
</data>
|
418
|
+
<key>FileURL</key>
|
419
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/clusto.gemspec</string>
|
420
|
+
<key>TypeID</key>
|
421
|
+
<string>_CFileLocator</string>
|
422
|
+
<key>Version</key>
|
423
|
+
<integer>1</integer>
|
424
|
+
</dict>
|
425
|
+
</dict>
|
426
|
+
<dict>
|
427
|
+
<key>Date</key>
|
428
|
+
<date>2012-10-14T23:12:00Z</date>
|
429
|
+
<key>Location</key>
|
430
|
+
<dict>
|
431
|
+
<key>BookmarkData</key>
|
432
|
+
<data>
|
433
|
+
Ym9va8wDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
434
|
+
AAAAAAAAAAAAAAAAAAAA1AIAAAUAAAABAQAAVXNlcnMA
|
435
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
436
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
437
|
+
BgAAAAEBAABjbHVzdG8AAAkAAAABAQAAUkVBRE1FLm1k
|
438
|
+
AAAAHAAAAAEGAAAEAAAAFAAAACQAAAA0AAAASAAAAFQA
|
439
|
+
AABkAAAACAAAAAQDAABTfAAAAAAAAAgAAAAEAwAArfkK
|
440
|
+
AAAAAAAIAAAABAMAAN1sMQAAAAAACAAAAAQDAAD132wD
|
441
|
+
AAAAAAgAAAAEAwAAhplUBAAAAAAIAAAABAMAAOtzRAcA
|
442
|
+
AAAACAAAAAQDAAAeeEQHAAAAABwAAAABBgAAnAAAAKwA
|
443
|
+
AAC8AAAAzAAAANwAAADsAAAA/AAAAAgAAAAABAAAQbYn
|
444
|
+
Wk4AAAAYAAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAA
|
445
|
+
AAAAAAQAAAADAwAABQAAAAQAAAADAwAA9gEAAAkAAAAB
|
446
|
+
AQAATWFjaW50b3NoAAAACAAAAAQDAAAAUFHONgAAAAgA
|
447
|
+
AAAABAAAQa5oO5wAAAAkAAAAAQEAADlFMUVDMzlCLUNG
|
448
|
+
NUItM0Q0MS1BNkYxLUVGOTI3MUJGOTc4RBgAAAABAgAA
|
449
|
+
gQAAAAEACADvPwAAAQAIAAAAAAAAAAAAAQAAAAEBAAAv
|
450
|
+
AAAAAAAAAAEFAAC+AAAAAQIAADhlMjY5MDQ1MGE5YmFm
|
451
|
+
MDkzOWMzYWQzNjZmMTJmNTAyMGVlMTJjZTE7MDAwMDAw
|
452
|
+
MDA7MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBw
|
453
|
+
LXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAw
|
454
|
+
MDAwNTswMDAwMDAwMDA3NDQ3ODFlOy91c2Vycy9jb25v
|
455
|
+
ci9kcm9wYm94L2RldmVsb3BtZW50L3J1YnkvY2x1c3Rv
|
456
|
+
L3JlYWRtZS5tZAAAAMAAAAD+////AQAAAAAAAAAPAAAA
|
457
|
+
BBAAAHgAAAAAAAAABRAAAAwBAAAAAAAAEBAAAEABAAAA
|
458
|
+
AAAAQBAAADABAAAAAAAAAiAAAPgBAAAAAAAAECAAAHgB
|
459
|
+
AAAAAAAAESAAAKwBAAAAAAAAEiAAAIwBAAAAAAAAEyAA
|
460
|
+
AJwBAAAAAAAAICAAANgBAAAAAAAAMCAAAAQCAAAAAAAA
|
461
|
+
AcAAAGABAAAAAAAAEcAAABQAAAAAAAAAEsAAAGwBAAAA
|
462
|
+
AAAAgPAAAAwCAAAAAAAA
|
463
|
+
</data>
|
464
|
+
<key>FileURL</key>
|
465
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/README.md</string>
|
466
|
+
<key>TypeID</key>
|
467
|
+
<string>_CFileLocator</string>
|
468
|
+
<key>Version</key>
|
469
|
+
<integer>1</integer>
|
470
|
+
</dict>
|
471
|
+
</dict>
|
472
|
+
<dict>
|
473
|
+
<key>Date</key>
|
474
|
+
<date>2012-10-14T23:11:58Z</date>
|
475
|
+
<key>Location</key>
|
476
|
+
<dict>
|
477
|
+
<key>BookmarkData</key>
|
478
|
+
<data>
|
479
|
+
Ym9va8QDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
480
|
+
AAAAAAAAAAAAAAAAAAAAzAIAAAUAAAABAQAAVXNlcnMA
|
481
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
482
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
483
|
+
BgAAAAEBAABjbHVzdG8AAAcAAAABAQAATElDRU5TRQAc
|
484
|
+
AAAAAQYAAAQAAAAUAAAAJAAAADQAAABIAAAAVAAAAGQA
|
485
|
+
AAAIAAAABAMAAFN8AAAAAAAACAAAAAQDAACt+QoAAAAA
|
486
|
+
AAgAAAAEAwAA3WwxAAAAAAAIAAAABAMAAPXfbAMAAAAA
|
487
|
+
CAAAAAQDAACGmVQEAAAAAAgAAAAEAwAA63NEBwAAAAAI
|
488
|
+
AAAABAMAABp4RAcAAAAAHAAAAAEGAACYAAAAqAAAALgA
|
489
|
+
AADIAAAA2AAAAOgAAAD4AAAACAAAAAAEAABBtidaTgAA
|
490
|
+
ABgAAAABAgAAAQAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA
|
491
|
+
BAAAAAMDAAAFAAAABAAAAAMDAAD2AQAACQAAAAEBAABN
|
492
|
+
YWNpbnRvc2gAAAAIAAAABAMAAABQUc42AAAACAAAAAAE
|
493
|
+
AABBrmg7nAAAACQAAAABAQAAOUUxRUMzOUItQ0Y1Qi0z
|
494
|
+
RDQxLUE2RjEtRUY5MjcxQkY5NzhEGAAAAAECAACBAAAA
|
495
|
+
AQAIAO8/AAABAAgAAAAAAAAAAAABAAAAAQEAAC8AAAAA
|
496
|
+
AAAAAQUAALwAAAABAgAANDgxZjQxZTU2MDJmZjg5MWMz
|
497
|
+
Nzc1ZjNmMTg3NzZkNTYyZjQ2YTFiOTswMDAwMDAwMDsw
|
498
|
+
MDAwMDAwMDAwMDAwMDIwO2NvbS5hcHBsZS5hcHAtc2Fu
|
499
|
+
ZGJveC5yZWFkLXdyaXRlOzAwMDAwMDAxOzAxMDAwMDA1
|
500
|
+
OzAwMDAwMDAwMDc0NDc4MWE7L3VzZXJzL2Nvbm9yL2Ry
|
501
|
+
b3Bib3gvZGV2ZWxvcG1lbnQvcnVieS9jbHVzdG8vbGlj
|
502
|
+
ZW5zZQDAAAAA/v///wEAAAAAAAAADwAAAAQQAAB0AAAA
|
503
|
+
AAAAAAUQAAAIAQAAAAAAABAQAAA8AQAAAAAAAEAQAAAs
|
504
|
+
AQAAAAAAAAIgAAD0AQAAAAAAABAgAAB0AQAAAAAAABEg
|
505
|
+
AACoAQAAAAAAABIgAACIAQAAAAAAABMgAACYAQAAAAAA
|
506
|
+
ACAgAADUAQAAAAAAADAgAAAAAgAAAAAAAAHAAABcAQAA
|
507
|
+
AAAAABHAAAAUAAAAAAAAABLAAABoAQAAAAAAAIDwAAAI
|
508
|
+
AgAAAAAAAA==
|
509
|
+
</data>
|
510
|
+
<key>FileURL</key>
|
511
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/LICENSE</string>
|
512
|
+
<key>TypeID</key>
|
513
|
+
<string>_CFileLocator</string>
|
514
|
+
<key>Version</key>
|
515
|
+
<integer>1</integer>
|
516
|
+
</dict>
|
517
|
+
</dict>
|
518
|
+
<dict>
|
519
|
+
<key>Date</key>
|
520
|
+
<date>2012-10-14T00:49:57Z</date>
|
521
|
+
<key>Location</key>
|
522
|
+
<dict>
|
523
|
+
<key>BookmarkData</key>
|
524
|
+
<data>
|
525
|
+
Ym9va/QDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
526
|
+
AAAAAAAAAAAAAAAAAAAA/AIAAAUAAAABAQAAVXNlcnMA
|
527
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
528
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
529
|
+
BgAAAAEBAABjbHVzdG8AAAMAAAABAQAAbGliAAkAAAAB
|
530
|
+
AQAAY2x1c3RvLnJiAAAAIAAAAAEGAAAEAAAAFAAAACQA
|
531
|
+
AAA0AAAASAAAAFQAAABkAAAAcAAAAAgAAAAEAwAAU3wA
|
532
|
+
AAAAAAAIAAAABAMAAK35CgAAAAAACAAAAAQDAADdbDEA
|
533
|
+
AAAAAAgAAAAEAwAA9d9sAwAAAAAIAAAABAMAAIaZVAQA
|
534
|
+
AAAACAAAAAQDAADrc0QHAAAAAAgAAAAEAwAAhnREBwAA
|
535
|
+
AAAIAAAABAMAAJZ0RAcAAAAAIAAAAAEGAACsAAAAvAAA
|
536
|
+
AMwAAADcAAAA7AAAAPwAAAAMAQAAHAEAAAgAAAAABAAA
|
537
|
+
QbYoXsEAAAAYAAAAAQIAAAEAAAAAAAAADwAAAAAAAAAA
|
538
|
+
AAAAAAAAAAQAAAADAwAABgAAAAQAAAADAwAA9gEAAAkA
|
539
|
+
AAABAQAATWFjaW50b3NoAAAACAAAAAQDAAAAUFHONgAA
|
540
|
+
AAgAAAAABAAAQa5oO5wAAAAkAAAAAQEAADlFMUVDMzlC
|
541
|
+
LUNGNUItM0Q0MS1BNkYxLUVGOTI3MUJGOTc4RBgAAAAB
|
542
|
+
AgAAgQAAAAEACADvPwAAAQAIAAAAAAAAAAAAAQAAAAEB
|
543
|
+
AAAvAAAAAAAAAAEFAADCAAAAAQIAADI5NDI2ODYwNWRh
|
544
|
+
MTkyYjlmNTk3NTRlYmMyYzU4YzBkMmQ4NTZhMWQ7MDAw
|
545
|
+
MDAwMDA7MDAwMDAwMDAwMDAwMDAyMDtjb20uYXBwbGUu
|
546
|
+
YXBwLXNhbmRib3gucmVhZC13cml0ZTswMDAwMDAwMTsw
|
547
|
+
MTAwMDAwNTswMDAwMDAwMDA3NDQ3NDk2Oy91c2Vycy9j
|
548
|
+
b25vci9kcm9wYm94L2RldmVsb3BtZW50L3J1YnkvY2x1
|
549
|
+
c3RvL2xpYi9jbHVzdG8ucmIAAADAAAAA/v///wEAAAAA
|
550
|
+
AAAADwAAAAQQAACEAAAAAAAAAAUQAAAsAQAAAAAAABAQ
|
551
|
+
AABkAQAAAAAAAEAQAABUAQAAAAAAAAIgAAAcAgAAAAAA
|
552
|
+
ABAgAACcAQAAAAAAABEgAADQAQAAAAAAABIgAACwAQAA
|
553
|
+
AAAAABMgAADAAQAAAAAAACAgAAD8AQAAAAAAADAgAAAo
|
554
|
+
AgAAAAAAAAHAAACEAQAAAAAAABHAAAAUAAAAAAAAABLA
|
555
|
+
AACQAQAAAAAAAIDwAAAwAgAAAAAAAA==
|
556
|
+
</data>
|
557
|
+
<key>FileURL</key>
|
558
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto.rb</string>
|
559
|
+
<key>TypeID</key>
|
560
|
+
<string>_CFileLocator</string>
|
561
|
+
<key>Version</key>
|
562
|
+
<integer>1</integer>
|
563
|
+
</dict>
|
564
|
+
</dict>
|
565
|
+
<dict>
|
566
|
+
<key>Date</key>
|
567
|
+
<date>2012-10-14T00:20:28Z</date>
|
568
|
+
<key>Location</key>
|
569
|
+
<dict>
|
570
|
+
<key>BookmarkData</key>
|
571
|
+
<data>
|
572
|
+
Ym9vawwEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
573
|
+
AAAAAAAAAAAAAAAAAAAAFAMAAAUAAAABAQAAVXNlcnMA
|
574
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
575
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
576
|
+
BgAAAAEBAABjbHVzdG8AAAMAAAABAQAAbGliAAgAAAAB
|
577
|
+
AQAAcG9pbnQucmIkAAAAAQYAAAQAAAAUAAAAJAAAADQA
|
578
|
+
AABIAAAAVAAAAGQAAABUAAAAcAAAAAgAAAAEAwAAU3wA
|
579
|
+
AAAAAAAIAAAABAMAAK35CgAAAAAACAAAAAQDAADdbDEA
|
580
|
+
AAAAAAgAAAAEAwAA9d9sAwAAAAAIAAAABAMAAIaZVAQA
|
581
|
+
AAAACAAAAAQDAADrc0QHAAAAAAgAAAAEAwAAhnREBwAA
|
582
|
+
AAAIAAAABAMAACN5RAcAAAAACAAAAAQDAAAIdkQHAAAA
|
583
|
+
ACQAAAABBgAArAAAALwAAADMAAAA3AAAAOwAAAD8AAAA
|
584
|
+
DAEAABwBAAAsAQAACAAAAAAEAABBtihgswAAABgAAAAB
|
585
|
+
AgAAAQAAAAAAAAAPAAAAAAAAAAAAAAAAAAAABAAAAAMD
|
586
|
+
AAAHAAAABAAAAAMDAAD2AQAACQAAAAEBAABNYWNpbnRv
|
587
|
+
c2gAAAAIAAAABAMAAABQUc42AAAACAAAAAAEAABBrmg7
|
588
|
+
nAAAACQAAAABAQAAOUUxRUMzOUItQ0Y1Qi0zRDQxLUE2
|
589
|
+
RjEtRUY5MjcxQkY5NzhEGAAAAAECAACBAAAAAQAIAO8/
|
590
|
+
AAABAAgAAAAAAAAAAAABAAAAAQEAAC8AAAAAAAAAAQUA
|
591
|
+
AMgAAAABAgAAMjQzOTU5ZTMzOGY1NGQ4YzM2MWZjZTdk
|
592
|
+
NzdkYzVmYzJkOWNjMmRhOTswMDAwMDAwMDswMDAwMDAw
|
593
|
+
MDAwMDAwMDIwO2NvbS5hcHBsZS5hcHAtc2FuZGJveC5y
|
594
|
+
ZWFkLXdyaXRlOzAwMDAwMDAxOzAxMDAwMDA1OzAwMDAw
|
595
|
+
MDAwMDc0NDc2MDg7L3VzZXJzL2Nvbm9yL2Ryb3Bib3gv
|
596
|
+
ZGV2ZWxvcG1lbnQvcnVieS9jbHVzdG8vbGliL2NsdXN0
|
597
|
+
by9wb2ludC5yYgDAAAAA/v///wEAAAAAAAAADwAAAAQQ
|
598
|
+
AACAAAAAAAAAAAUQAAA8AQAAAAAAABAQAAB4AQAAAAAA
|
599
|
+
AEAQAABoAQAAAAAAAAIgAAAwAgAAAAAAABAgAACwAQAA
|
600
|
+
AAAAABEgAADkAQAAAAAAABIgAADEAQAAAAAAABMgAADU
|
601
|
+
AQAAAAAAACAgAAAQAgAAAAAAADAgAAA8AgAAAAAAAAHA
|
602
|
+
AACYAQAAAAAAABHAAAAUAAAAAAAAABLAAACkAQAAAAAA
|
603
|
+
AIDwAABEAgAAAAAAAA==
|
604
|
+
</data>
|
605
|
+
<key>FileURL</key>
|
606
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/point.rb</string>
|
607
|
+
<key>TypeID</key>
|
608
|
+
<string>_CFileLocator</string>
|
609
|
+
<key>Version</key>
|
610
|
+
<integer>1</integer>
|
611
|
+
</dict>
|
612
|
+
</dict>
|
613
|
+
<dict>
|
614
|
+
<key>Date</key>
|
615
|
+
<date>2012-10-14T00:20:28Z</date>
|
616
|
+
<key>Location</key>
|
617
|
+
<dict>
|
618
|
+
<key>BookmarkData</key>
|
619
|
+
<data>
|
620
|
+
Ym9vaxQEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
621
|
+
AAAAAAAAAAAAAAAAAAAAHAMAAAUAAAABAQAAVXNlcnMA
|
622
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
623
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
624
|
+
BgAAAAEBAABjbHVzdG8AAAMAAAABAQAAbGliAAsAAAAB
|
625
|
+
AQAAZGlzdGFuY2UucmIAJAAAAAEGAAAEAAAAFAAAACQA
|
626
|
+
AAA0AAAASAAAAFQAAABkAAAAVAAAAHAAAAAIAAAABAMA
|
627
|
+
AFN8AAAAAAAACAAAAAQDAACt+QoAAAAAAAgAAAAEAwAA
|
628
|
+
3WwxAAAAAAAIAAAABAMAAPXfbAMAAAAACAAAAAQDAACG
|
629
|
+
mVQEAAAAAAgAAAAEAwAA63NEBwAAAAAIAAAABAMAAIZ0
|
630
|
+
RAcAAAAACAAAAAQDAAAjeUQHAAAAAAgAAAAEAwAACZBF
|
631
|
+
BwAAAAAkAAAAAQYAALAAAADAAAAA0AAAAOAAAADwAAAA
|
632
|
+
AAEAABABAAAgAQAAMAEAAAgAAAAABAAAQbYpyXEAAAAY
|
633
|
+
AAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAQA
|
634
|
+
AAADAwAABwAAAAQAAAADAwAA9gEAAAkAAAABAQAATWFj
|
635
|
+
aW50b3NoAAAACAAAAAQDAAAAUFHONgAAAAgAAAAABAAA
|
636
|
+
Qa5oO5wAAAAkAAAAAQEAADlFMUVDMzlCLUNGNUItM0Q0
|
637
|
+
MS1BNkYxLUVGOTI3MUJGOTc4RBgAAAABAgAAgQAAAAEA
|
638
|
+
CADvPwAAAQAIAAAAAAAAAAAAAQAAAAEBAAAvAAAAAAAA
|
639
|
+
AAEFAADLAAAAAQIAADY4N2UzOGJhM2Q2Y2JlYmFhNzM3
|
640
|
+
MGFlZTdlZTU5ZTk2Y2RkNWY3YmU7MDAwMDAwMDA7MDAw
|
641
|
+
MDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRi
|
642
|
+
b3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwNTsw
|
643
|
+
MDAwMDAwMDA3NDU5MDA5Oy91c2Vycy9jb25vci9kcm9w
|
644
|
+
Ym94L2RldmVsb3BtZW50L3J1YnkvY2x1c3RvL2xpYi9j
|
645
|
+
bHVzdG8vZGlzdGFuY2UucmIAAMAAAAD+////AQAAAAAA
|
646
|
+
AAAPAAAABBAAAIQAAAAAAAAABRAAAEABAAAAAAAAEBAA
|
647
|
+
AHwBAAAAAAAAQBAAAGwBAAAAAAAAAiAAADQCAAAAAAAA
|
648
|
+
ECAAALQBAAAAAAAAESAAAOgBAAAAAAAAEiAAAMgBAAAA
|
649
|
+
AAAAEyAAANgBAAAAAAAAICAAABQCAAAAAAAAMCAAAEAC
|
650
|
+
AAAAAAAAAcAAAJwBAAAAAAAAEcAAABQAAAAAAAAAEsAA
|
651
|
+
AKgBAAAAAAAAgPAAAEgCAAAAAAAA
|
652
|
+
</data>
|
653
|
+
<key>FileURL</key>
|
654
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/distance.rb</string>
|
655
|
+
<key>TypeID</key>
|
656
|
+
<string>_CFileLocator</string>
|
657
|
+
<key>Version</key>
|
658
|
+
<integer>1</integer>
|
659
|
+
</dict>
|
660
|
+
</dict>
|
661
|
+
<dict>
|
662
|
+
<key>Date</key>
|
663
|
+
<date>2012-10-14T00:20:26Z</date>
|
664
|
+
<key>Location</key>
|
665
|
+
<dict>
|
666
|
+
<key>BookmarkData</key>
|
667
|
+
<data>
|
668
|
+
Ym9vaxQEAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
669
|
+
AAAAAAAAAAAAAAAAAAAAHAMAAAUAAAABAQAAVXNlcnMA
|
670
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
671
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
672
|
+
BgAAAAEBAABjbHVzdG8AAAMAAAABAQAAbGliAAoAAAAB
|
673
|
+
AQAAY2x1c3Rlci5yYgAAJAAAAAEGAAAEAAAAFAAAACQA
|
674
|
+
AAA0AAAASAAAAFQAAABkAAAAVAAAAHAAAAAIAAAABAMA
|
675
|
+
AFN8AAAAAAAACAAAAAQDAACt+QoAAAAAAAgAAAAEAwAA
|
676
|
+
3WwxAAAAAAAIAAAABAMAAPXfbAMAAAAACAAAAAQDAACG
|
677
|
+
mVQEAAAAAAgAAAAEAwAA63NEBwAAAAAIAAAABAMAAIZ0
|
678
|
+
RAcAAAAACAAAAAQDAAAjeUQHAAAAAAgAAAAEAwAADHZE
|
679
|
+
BwAAAAAkAAAAAQYAALAAAADAAAAA0AAAAOAAAADwAAAA
|
680
|
+
AAEAABABAAAgAQAAMAEAAAgAAAAABAAAQbYoYL4AAAAY
|
681
|
+
AAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAQA
|
682
|
+
AAADAwAABwAAAAQAAAADAwAA9gEAAAkAAAABAQAATWFj
|
683
|
+
aW50b3NoAAAACAAAAAQDAAAAUFHONgAAAAgAAAAABAAA
|
684
|
+
Qa5oO5wAAAAkAAAAAQEAADlFMUVDMzlCLUNGNUItM0Q0
|
685
|
+
MS1BNkYxLUVGOTI3MUJGOTc4RBgAAAABAgAAgQAAAAEA
|
686
|
+
CADvPwAAAQAIAAAAAAAAAAAAAQAAAAEBAAAvAAAAAAAA
|
687
|
+
AAEFAADKAAAAAQIAADE1MjNhOWU2NjMzOTE0NDM3OThh
|
688
|
+
N2NjODYyMzZjYzBlZDdlZjI2ZDA7MDAwMDAwMDA7MDAw
|
689
|
+
MDAwMDAwMDAwMDAyMDtjb20uYXBwbGUuYXBwLXNhbmRi
|
690
|
+
b3gucmVhZC13cml0ZTswMDAwMDAwMTswMTAwMDAwNTsw
|
691
|
+
MDAwMDAwMDA3NDQ3NjBjOy91c2Vycy9jb25vci9kcm9w
|
692
|
+
Ym94L2RldmVsb3BtZW50L3J1YnkvY2x1c3RvL2xpYi9j
|
693
|
+
bHVzdG8vY2x1c3Rlci5yYgAAAMAAAAD+////AQAAAAAA
|
694
|
+
AAAPAAAABBAAAIQAAAAAAAAABRAAAEABAAAAAAAAEBAA
|
695
|
+
AHwBAAAAAAAAQBAAAGwBAAAAAAAAAiAAADQCAAAAAAAA
|
696
|
+
ECAAALQBAAAAAAAAESAAAOgBAAAAAAAAEiAAAMgBAAAA
|
697
|
+
AAAAEyAAANgBAAAAAAAAICAAABQCAAAAAAAAMCAAAEAC
|
698
|
+
AAAAAAAAAcAAAJwBAAAAAAAAEcAAABQAAAAAAAAAEsAA
|
699
|
+
AKgBAAAAAAAAgPAAAEgCAAAAAAAA
|
700
|
+
</data>
|
701
|
+
<key>FileURL</key>
|
702
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/lib/clusto/cluster.rb</string>
|
703
|
+
<key>TypeID</key>
|
704
|
+
<string>_CFileLocator</string>
|
705
|
+
<key>Version</key>
|
706
|
+
<integer>1</integer>
|
707
|
+
</dict>
|
708
|
+
</dict>
|
709
|
+
</array>
|
710
|
+
<key>RecentItemsExpanded</key>
|
711
|
+
<false/>
|
712
|
+
<key>RecentItemsVisible</key>
|
713
|
+
<true/>
|
714
|
+
<key>ScratchpadItemsExpanded</key>
|
715
|
+
<false/>
|
716
|
+
<key>ScratchpadItemsVisible</key>
|
717
|
+
<true/>
|
718
|
+
<key>ShowSCMData:Conor</key>
|
719
|
+
<false/>
|
720
|
+
<key>ToolbarVisible:Conor</key>
|
721
|
+
<true/>
|
722
|
+
<key>ViewSplitterPosition:Conor</key>
|
723
|
+
<real>0.1968826949596405</real>
|
724
|
+
<key>WindowFrame:Conor:displays([(0, 0), (1440, 900)])</key>
|
725
|
+
<string>rect(44,0,837,1219)</string>
|
726
|
+
</dict>
|
727
|
+
</plist>
|
File without changes
|
data/clusto.bbprojectd/Unix Worksheet.worksheet b/data/clusto.bbprojectd/Unix → Worksheet.worksheet
ADDED
File without changes
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>HierarchyData</key>
|
6
|
+
<array>
|
7
|
+
<string>4A878945-2576-4616-866A-51179A76DB90</string>
|
8
|
+
</array>
|
9
|
+
<key>ProjectItems</key>
|
10
|
+
<dict>
|
11
|
+
<key>4A878945-2576-4616-866A-51179A76DB90</key>
|
12
|
+
<dict>
|
13
|
+
<key>ItemData</key>
|
14
|
+
<dict>
|
15
|
+
<key>BookmarkData</key>
|
16
|
+
<data>
|
17
|
+
Ym9va5QDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
18
|
+
AAAAAAAAAAAAAAAAAAAAnAIAAAUAAAABAQAAVXNlcnMA
|
19
|
+
AAAFAAAAAQEAAENvbm9yAAAABwAAAAEBAABEcm9wYm94
|
20
|
+
AAsAAAABAQAARGV2ZWxvcG1lbnQABAAAAAEBAABSdWJ5
|
21
|
+
BgAAAAEBAABjbHVzdG8AABgAAAABBgAABAAAABQAAAAk
|
22
|
+
AAAANAAAAEgAAABUAAAACAAAAAQDAABTfAAAAAAAAAgA
|
23
|
+
AAAEAwAArfkKAAAAAAAIAAAABAMAAN1sMQAAAAAACAAA
|
24
|
+
AAQDAAD132wDAAAAAAgAAAAEAwAAhplUBAAAAAAIAAAA
|
25
|
+
BAMAAOtzRAcAAAAAGAAAAAEGAACEAAAAlAAAAKQAAAC0
|
26
|
+
AAAAxAAAANQAAAAIAAAAAAQAAEG2KF4gAAAAGAAAAAEC
|
27
|
+
AAACAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAEAAAAAwMA
|
28
|
+
AAQAAAAEAAAAAwMAAPYBAAAJAAAAAQEAAE1hY2ludG9z
|
29
|
+
aAAAAAgAAAAEAwAAAFBRzjYAAAAIAAAAAAQAAEGuaDuc
|
30
|
+
AAAAJAAAAAEBAAA5RTFFQzM5Qi1DRjVCLTNENDEtQTZG
|
31
|
+
MS1FRjkyNzFCRjk3OEQYAAAAAQIAAIEAAAABAAgA7z8A
|
32
|
+
AAEACAAAAAAAAAAAAAEAAAABAQAALwAAAAAAAAABBQAA
|
33
|
+
tAAAAAECAAAxNzI3MDBkM2JlYzA1N2Q0YTZlYTAwN2M1
|
34
|
+
NTMyYjE1MjA3NWFlY2I0OzAwMDAwMDAwOzAwMDAwMDAw
|
35
|
+
MDAwMDAwMjA7Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJl
|
36
|
+
YWQtd3JpdGU7MDAwMDAwMDE7MDEwMDAwMDU7MDAwMDAw
|
37
|
+
MDAwNzQ0NzNlYjsvdXNlcnMvY29ub3IvZHJvcGJveC9k
|
38
|
+
ZXZlbG9wbWVudC9ydWJ5L2NsdXN0bwDAAAAA/v///wEA
|
39
|
+
AAAAAAAADwAAAAQQAABkAAAAAAAAAAUQAADkAAAAAAAA
|
40
|
+
ABAQAAAUAQAAAAAAAEAQAAAEAQAAAAAAAAIgAADMAQAA
|
41
|
+
AAAAABAgAABMAQAAAAAAABEgAACAAQAAAAAAABIgAABg
|
42
|
+
AQAAAAAAABMgAABwAQAAAAAAACAgAACsAQAAAAAAADAg
|
43
|
+
AADYAQAAAAAAAAHAAAA0AQAAAAAAABHAAAAUAAAAAAAA
|
44
|
+
ABLAAABAAQAAAAAAAIDwAADgAQAAAAAAAA==
|
45
|
+
</data>
|
46
|
+
<key>FileURL</key>
|
47
|
+
<string>file://localhost/Users/Conor/Dropbox/Development/Ruby/clusto/</string>
|
48
|
+
<key>RelativePath</key>
|
49
|
+
<string>./</string>
|
50
|
+
<key>TypeID</key>
|
51
|
+
<string>_CFileLocator</string>
|
52
|
+
<key>Version</key>
|
53
|
+
<integer>1</integer>
|
54
|
+
</dict>
|
55
|
+
<key>ItemName</key>
|
56
|
+
<string>clusto</string>
|
57
|
+
<key>ItemType</key>
|
58
|
+
<string>FolderReference</string>
|
59
|
+
<key>UserOverrideItemName</key>
|
60
|
+
<true/>
|
61
|
+
</dict>
|
62
|
+
</dict>
|
63
|
+
<key>com.barebones.DocumentFormatVersion</key>
|
64
|
+
<integer>5</integer>
|
65
|
+
<key>com.barebones.DocumentType</key>
|
66
|
+
<string>Project</string>
|
67
|
+
</dict>
|
68
|
+
</plist>
|
data/clusto.gemspec
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
|
-
s.name
|
3
|
-
s.version
|
4
|
-
s.author
|
5
|
-
s.email
|
6
|
-
s.
|
7
|
-
|
2
|
+
s.name = 'clusto'
|
3
|
+
s.version = '0.2.0'
|
4
|
+
s.author = 'Conor Mulligan'
|
5
|
+
s.email = 'conmulligan@gmail.com'
|
6
|
+
s.homepage = 'http://github.com/conmulligan/clusto'
|
7
|
+
s.summary = 'Simple Ruby point clustering'
|
8
|
+
s.description = 'Clusto is a simple way to assign many points to a few clusters, ideally for rendering on a map.'
|
9
|
+
s.license = 'MIT'
|
10
|
+
|
11
|
+
s.platform = Gem::Platform::RUBY
|
12
|
+
s.required_ruby_version = '>= 1.9.1'
|
8
13
|
s.files = Dir["#{File.dirname(__FILE__)}/**/*"]
|
9
14
|
end
|
data/lib/clusto.rb
CHANGED
@@ -9,7 +9,7 @@ module Clusto
|
|
9
9
|
RADIANS_PER_DEGREES = Math::PI / 180
|
10
10
|
GREAT_CIRCLE_RADIUS = 6371
|
11
11
|
|
12
|
-
|
12
|
+
DEFAULT_GRID_SIZE = 8
|
13
13
|
|
14
14
|
def minimum_bounding_rectangle(points)
|
15
15
|
xs = points.collect { |p| p.x }.minmax
|
@@ -21,7 +21,8 @@ module Clusto
|
|
21
21
|
def cluster(points, options={})
|
22
22
|
bounds = options[:bounds] || Clusto.minimum_bounding_rectangle(points)
|
23
23
|
distance_method = options[:distance_method] || :haversine
|
24
|
-
|
24
|
+
grid_size = options[:grid_size] || DEFAULT_GRID_SIZE
|
25
|
+
|
25
26
|
# Create clusters
|
26
27
|
|
27
28
|
clusters = []
|
@@ -30,13 +31,13 @@ module Clusto
|
|
30
31
|
y = bounds[3]
|
31
32
|
w = bounds[2] - bounds[0]
|
32
33
|
h = bounds[3] - bounds[1]
|
33
|
-
grid_w = w /
|
34
|
-
grid_h = h /
|
34
|
+
grid_w = w / grid_size
|
35
|
+
grid_h = h / grid_size
|
35
36
|
|
36
37
|
column = 0
|
37
38
|
row = 0
|
38
39
|
|
39
|
-
(
|
40
|
+
(grid_size ** 2).times do |i|
|
40
41
|
offset_x = x + (column * grid_w)
|
41
42
|
offset_y = y - (row * grid_h)
|
42
43
|
|
@@ -44,7 +45,7 @@ module Clusto
|
|
44
45
|
clusters.push(Clusto::Cluster.new(center))
|
45
46
|
|
46
47
|
column = column+1
|
47
|
-
if column ==
|
48
|
+
if column == grid_size
|
48
49
|
column = 0
|
49
50
|
row = row+1
|
50
51
|
end
|
@@ -74,8 +75,6 @@ module Clusto
|
|
74
75
|
|
75
76
|
# Reposition clusters
|
76
77
|
|
77
|
-
clusters.each
|
78
|
-
cluster.reposition
|
79
|
-
end
|
78
|
+
clusters.each { |c| c.reposition }
|
80
79
|
end
|
81
80
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clusto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,14 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description:
|
14
|
+
description: Clusto is a simple way to assign many points to a few clusters, ideally
|
15
|
+
for rendering on a map.
|
15
16
|
email: conmulligan@gmail.com
|
16
17
|
executables: []
|
17
18
|
extensions: []
|
18
19
|
extra_rdoc_files: []
|
19
20
|
files:
|
21
|
+
- ./clusto.bbprojectd/Conor.bbprojectsettings
|
22
|
+
- ./clusto.bbprojectd/project.bbprojectdata
|
23
|
+
- ./clusto.bbprojectd/Scratchpad.txt
|
24
|
+
- ./clusto.bbprojectd/Unix Worksheet.worksheet
|
20
25
|
- ./clusto.gemspec
|
21
26
|
- ./lib/clusto/cluster.rb
|
22
27
|
- ./lib/clusto/distance.rb
|
@@ -24,8 +29,9 @@ files:
|
|
24
29
|
- ./lib/clusto.rb
|
25
30
|
- ./LICENSE
|
26
31
|
- ./README.md
|
27
|
-
homepage:
|
28
|
-
licenses:
|
32
|
+
homepage: http://github.com/conmulligan/clusto
|
33
|
+
licenses:
|
34
|
+
- MIT
|
29
35
|
post_install_message:
|
30
36
|
rdoc_options: []
|
31
37
|
require_paths:
|
@@ -35,7 +41,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
35
41
|
requirements:
|
36
42
|
- - ! '>='
|
37
43
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
44
|
+
version: 1.9.1
|
39
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
46
|
none: false
|
41
47
|
requirements:
|