stomp 1.3.5 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,708 @@
1
+ # README
2
+
3
+ * [Project Information](https://github.com/stompgem/stomp)
4
+
5
+ ## Overview
6
+
7
+ An implementation of the Stomp protocol for Ruby. See:
8
+
9
+ * [STOMP 1.0, 1.1, and 1.2] (http://stomp.github.com/index.html)
10
+
11
+ ## Hash Login Example Usage (**this is the recommended login technique**):
12
+
13
+ ```
14
+ hash = {
15
+ :hosts => [
16
+ # First connect is to remotehost1
17
+ {:login => "login1", :passcode => "passcode1", :host => "remotehost1", :port => 61612, :ssl => true},
18
+ # First failover connect is to remotehost2
19
+ {:login => "login2", :passcode => "passcode2", :host => "remotehost2", :port => 61613, :ssl => false},
20
+ ],
21
+ # These are the default parameters and do not need to be set
22
+ :reliable => true, # reliable (use failover)
23
+ :initial_reconnect_delay => 0.01, # initial delay before reconnect (secs)
24
+ :max_reconnect_delay => 30.0, # max delay before reconnect
25
+ :use_exponential_back_off => true, # increase delay between reconnect attpempts
26
+ :back_off_multiplier => 2, # next delay multiplier
27
+ :max_reconnect_attempts => 0, # retry forever, use # for maximum attempts
28
+ :randomize => false, # do not radomize hosts hash before reconnect
29
+ :connect_timeout => 0, # Timeout for TCP/TLS connects, use # for max seconds
30
+ :connect_headers => {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
31
+ :parse_timeout => 5, # IO::select wait time on socket reads
32
+ :logger => nil, # user suplied callback logger instance
33
+ :dmh => false, # do not support multihomed IPV4 / IPV6 hosts during failover
34
+ :closed_check => true, # check first if closed in each protocol method
35
+ :hbser => false, # raise on heartbeat send exception
36
+ :stompconn => false, # Use STOMP instead of CONNECT
37
+ :usecrlf => false, # Use CRLF command and header line ends (1.2+)
38
+ :max_hbread_fails => 0, # Max HB read fails before retry. 0 => never retry
39
+ :max_hbrlck_fails => 0, # Max HB read lock obtain fails before retry. 0 => never retry
40
+ :fast_hbs_adjust => 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
41
+ # For fast heartbeat senders. 'fast' == YMMV. If not
42
+ # correct for your environment, expect unnecessary fail overs
43
+ :connread_timeout => 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
44
+ :tcp_nodelay => true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
45
+ :start_timeout => 0, # Timeout around Stomp::Client initialization
46
+ :sslctx_newparm => nil, # Param for SSLContext.new
47
+ }
48
+
49
+ # for a client
50
+ client = Stomp::Client.new(hash)
51
+
52
+ # for a connection
53
+ connection = Stomp::Connection.new(hash)
54
+ ```
55
+
56
+ ### Positional Parameter Usage:
57
+
58
+ ```
59
+ client = Stomp::Client.new("user", "pass", "localhost", 61613)
60
+ client.publish("/queue/mine", "hello world!")
61
+ client.subscribe("/queue/mine") do |msg|
62
+ p msg
63
+ end
64
+ ```
65
+
66
+ ### Stomp URL Usage:
67
+
68
+ A Stomp URL must begin with 'stomp://' and can be in one of the following forms:
69
+
70
+ ```
71
+ stomp://host:port
72
+ stomp://host.domain.tld:port
73
+ stomp://login:passcode@host:port
74
+ stomp://login:passcode@host.domain.tld:port
75
+
76
+ # e.g. c = Stomp::Client.new(urlstring)
77
+ ```
78
+
79
+ ### Failover + SSL Example URL Usage:
80
+
81
+ ```
82
+ options = "initialReconnectDelay=5000&randomize=false&useExponentialBackOff=false"
83
+ # remotehost1 uses SSL, remotehost2 doesn't
84
+ client = Stomp::Client.new("failover:(stomp+ssl://login1:passcode1@remotehost1:61612,stomp://login2:passcode2@remotehost2:61613)?#{options}")
85
+ client.publish("/queue/mine", "hello world!")
86
+ client.subscribe("/queue/mine") do |msg|
87
+ p msg
88
+ end
89
+ ```
90
+
91
+ ### New:
92
+
93
+ See _CHANGELOG.rdoc_ for details.
94
+
95
+ * Gem version 1.4.0. Note: Change sementics of :parse_timeout, see CHANGELOG.md for details.
96
+ * Gem version 1.3.5. Miscellaneous fixes, see CHANGELOG.rdoc for details.
97
+ * Gem version 1.3.4. Miscellaneous fixes, see CHANGELOG.rdoc for details.
98
+ * Gem version 1.3.3. Miscellaneous fixes, see CHANGELOG.rdoc for details.
99
+ * Gem version 1.3.2. Miscellaneous fixes, see changelog for details.
100
+ * Gem version 1.3.1. Bugfix for logging.
101
+ * Gem version 1.3.0. Added ERROR frame raising as exception, added anonymous connections, miscellaneous other fixes.
102
+
103
+ For changes in older versions see CHANGELOG.rdoc for details.
104
+
105
+ ### Historical Information:
106
+
107
+ Up until March 2009 the project was maintained and primarily developed by Brian McCallister.
108
+
109
+ ### Source Code and Project URLs:
110
+
111
+ [Source Code and Project](https://github.com/stompgem/stomp)
112
+
113
+ ### Stomp Protocol Information:
114
+
115
+ [Protocol Information](http://stomp.github.com/index.html)
116
+
117
+ #### Contributors (by first author date) ####
118
+
119
+ Contribution information:
120
+
121
+ <table border="1" style="width:100%;border: 1px solid black;">
122
+ <tr>
123
+ <th style="border: 1px solid black;padding-left: 10px;" >
124
+ First Author Date
125
+ </th>
126
+ <th style="border: 1px solid black;padding-left: 10px;" >
127
+ (Commit Count)
128
+ </th>
129
+ <th style="border: 1px solid black;padding-left: 10px;" >
130
+ Name / E-mail
131
+ </th>
132
+ </tr>
133
+ <tr>
134
+ <td style="border: 1px solid black;padding-left: 10px;" >
135
+ 2005-08-26
136
+ </td>
137
+ <td style="border: 1px solid black;padding-left: 10px;" >
138
+ (0023)
139
+ </td>
140
+ <td style="border: 1px solid black;padding-left: 10px;" >
141
+ <span style="font-weight: bold;" >
142
+ brianm
143
+ </span>
144
+ / brianm@fd4e7336-3dff-0310-b68a-b6615a75f13b
145
+ </td>
146
+ </tr>
147
+ <tr>
148
+ <td style="border: 1px solid black;padding-left: 10px;" >
149
+ 2006-03-16
150
+ </td>
151
+ <td style="border: 1px solid black;padding-left: 10px;" >
152
+ (0005)
153
+ </td>
154
+ <td style="border: 1px solid black;padding-left: 10px;" >
155
+ <span style="font-weight: bold;" >
156
+ jstrachan
157
+ </span>
158
+ / jstrachan@fd4e7336-3dff-0310-b68a-b6615a75f13b
159
+ </td>
160
+ </tr>
161
+ <tr>
162
+ <td style="border: 1px solid black;padding-left: 10px;" >
163
+ 2006-04-19
164
+ </td>
165
+ <td style="border: 1px solid black;padding-left: 10px;" >
166
+ (0001)
167
+ </td>
168
+ <td style="border: 1px solid black;padding-left: 10px;" >
169
+ <span style="font-weight: bold;" >
170
+ chirino
171
+ </span>
172
+ / chirino@fd4e7336-3dff-0310-b68a-b6615a75f13b
173
+ </td>
174
+ </tr>
175
+ <tr>
176
+ <td style="border: 1px solid black;padding-left: 10px;" >
177
+ 2007-05-09
178
+ </td>
179
+ <td style="border: 1px solid black;padding-left: 10px;" >
180
+ (0003)
181
+ </td>
182
+ <td style="border: 1px solid black;padding-left: 10px;" >
183
+ <span style="font-weight: bold;" >
184
+ kookster
185
+ </span>
186
+ / kookster@fd4e7336-3dff-0310-b68a-b6615a75f13b
187
+ </td>
188
+ </tr>
189
+ <tr>
190
+ <td style="border: 1px solid black;padding-left: 10px;" >
191
+ 2008-05-08
192
+ </td>
193
+ <td style="border: 1px solid black;padding-left: 10px;" >
194
+ (0016)
195
+ </td>
196
+ <td style="border: 1px solid black;padding-left: 10px;" >
197
+ <span style="font-weight: bold;" >
198
+ Glenn Rempe
199
+ </span>
200
+ / glenn@rempe.us
201
+ </td>
202
+ </tr>
203
+ <tr>
204
+ <td style="border: 1px solid black;padding-left: 10px;" >
205
+ 2009-02-03
206
+ </td>
207
+ <td style="border: 1px solid black;padding-left: 10px;" >
208
+ (0001)
209
+ </td>
210
+ <td style="border: 1px solid black;padding-left: 10px;" >
211
+ <span style="font-weight: bold;" >
212
+ Tony Garnock-Jones
213
+ </span>
214
+ / tonyg@lshift.net
215
+ </td>
216
+ </tr>
217
+ <tr>
218
+ <td style="border: 1px solid black;padding-left: 10px;" >
219
+ 2009-02-09
220
+ </td>
221
+ <td style="border: 1px solid black;padding-left: 10px;" >
222
+ (0003)
223
+ </td>
224
+ <td style="border: 1px solid black;padding-left: 10px;" >
225
+ <span style="font-weight: bold;" >
226
+ Marius Mathiesen
227
+ </span>
228
+ / marius.mathiesen@gmail.com
229
+ </td>
230
+ </tr>
231
+ <tr>
232
+ <td style="border: 1px solid black;padding-left: 10px;" >
233
+ 2009-02-13
234
+ </td>
235
+ <td style="border: 1px solid black;padding-left: 10px;" >
236
+ (0004)
237
+ </td>
238
+ <td style="border: 1px solid black;padding-left: 10px;" >
239
+ <span style="font-weight: bold;" >
240
+ Johan Sørensen
241
+ </span>
242
+ / johan@johansorensen.com
243
+ </td>
244
+ </tr>
245
+ <tr>
246
+ <td style="border: 1px solid black;padding-left: 10px;" >
247
+ 2009-11-17
248
+ </td>
249
+ <td style="border: 1px solid black;padding-left: 10px;" >
250
+ (0022)
251
+ </td>
252
+ <td style="border: 1px solid black;padding-left: 10px;" >
253
+ <span style="font-weight: bold;" >
254
+ Thiago Morello
255
+ </span>
256
+ / thiago.morello@locaweb.com.br
257
+ </td>
258
+ </tr>
259
+ <tr>
260
+ <td style="border: 1px solid black;padding-left: 10px;" >
261
+ 2009-11-22
262
+ </td>
263
+ <td style="border: 1px solid black;padding-left: 10px;" >
264
+ (0001)
265
+ </td>
266
+ <td style="border: 1px solid black;padding-left: 10px;" >
267
+ <span style="font-weight: bold;" >
268
+ unknown
269
+ </span>
270
+ / katy@.(none)
271
+ </td>
272
+ </tr>
273
+ <tr>
274
+ <td style="border: 1px solid black;padding-left: 10px;" >
275
+ 2009-12-18
276
+ </td>
277
+ <td style="border: 1px solid black;padding-left: 10px;" >
278
+ (0052)
279
+ </td>
280
+ <td style="border: 1px solid black;padding-left: 10px;" >
281
+ <span style="font-weight: bold;" >
282
+ Thiago Morello
283
+ </span>
284
+ / morello@queroinfra32.fabrica.locaweb.com.br
285
+ </td>
286
+ </tr>
287
+ <tr>
288
+ <td style="border: 1px solid black;padding-left: 10px;" >
289
+ 2009-12-25
290
+ </td>
291
+ <td style="border: 1px solid black;padding-left: 10px;" >
292
+ (0344)
293
+ </td>
294
+ <td style="border: 1px solid black;padding-left: 10px;" >
295
+ <span style="font-weight: bold;" >
296
+ gmallard
297
+ </span>
298
+ / allard.guy.m@gmail.com
299
+ </td>
300
+ </tr>
301
+ <tr>
302
+ <td style="border: 1px solid black;padding-left: 10px;" >
303
+ 2010-01-07
304
+ </td>
305
+ <td style="border: 1px solid black;padding-left: 10px;" >
306
+ (0007)
307
+ </td>
308
+ <td style="border: 1px solid black;padding-left: 10px;" >
309
+ <span style="font-weight: bold;" >
310
+ Rafael Rosa
311
+ </span>
312
+ / rafael.rosa@locaweb.com.br
313
+ </td>
314
+ </tr>
315
+ <tr>
316
+ <td style="border: 1px solid black;padding-left: 10px;" >
317
+ 2010-03-23
318
+ </td>
319
+ <td style="border: 1px solid black;padding-left: 10px;" >
320
+ (0024)
321
+ </td>
322
+ <td style="border: 1px solid black;padding-left: 10px;" >
323
+ <span style="font-weight: bold;" >
324
+ Guy M. Allard
325
+ </span>
326
+ / allard.guy.m@gmail.com
327
+ </td>
328
+ </tr>
329
+ <tr>
330
+ <td style="border: 1px solid black;padding-left: 10px;" >
331
+ 2010-04-01
332
+ </td>
333
+ <td style="border: 1px solid black;padding-left: 10px;" >
334
+ (0001)
335
+ </td>
336
+ <td style="border: 1px solid black;padding-left: 10px;" >
337
+ <span style="font-weight: bold;" >
338
+ Dmytro Shteflyuk
339
+ </span>
340
+ / kpumuk@kpumuk.info
341
+ </td>
342
+ </tr>
343
+ <tr>
344
+ <td style="border: 1px solid black;padding-left: 10px;" >
345
+ 2010-10-22
346
+ </td>
347
+ <td style="border: 1px solid black;padding-left: 10px;" >
348
+ (0001)
349
+ </td>
350
+ <td style="border: 1px solid black;padding-left: 10px;" >
351
+ <span style="font-weight: bold;" >
352
+ Neil Wilson
353
+ </span>
354
+ / neil@aldur.co.uk
355
+ </td>
356
+ </tr>
357
+ <tr>
358
+ <td style="border: 1px solid black;padding-left: 10px;" >
359
+ 2011-02-09
360
+ </td>
361
+ <td style="border: 1px solid black;padding-left: 10px;" >
362
+ (0001)
363
+ </td>
364
+ <td style="border: 1px solid black;padding-left: 10px;" >
365
+ <span style="font-weight: bold;" >
366
+ Dinesh Majrekar
367
+ </span>
368
+ / dinesh.majrekar@advantage-interactive.com
369
+ </td>
370
+ </tr>
371
+ <tr>
372
+ <td style="border: 1px solid black;padding-left: 10px;" >
373
+ 2011-04-15
374
+ </td>
375
+ <td style="border: 1px solid black;padding-left: 10px;" >
376
+ (0002)
377
+ </td>
378
+ <td style="border: 1px solid black;padding-left: 10px;" >
379
+ <span style="font-weight: bold;" >
380
+ Kiall Mac Innes
381
+ </span>
382
+ / kiall@managedit.ie
383
+ </td>
384
+ </tr>
385
+ <tr>
386
+ <td style="border: 1px solid black;padding-left: 10px;" >
387
+ 2011-04-29
388
+ </td>
389
+ <td style="border: 1px solid black;padding-left: 10px;" >
390
+ (0002)
391
+ </td>
392
+ <td style="border: 1px solid black;padding-left: 10px;" >
393
+ <span style="font-weight: bold;" >
394
+ Rob Skaggs
395
+ </span>
396
+ / rob@pivotal-it.com
397
+ </td>
398
+ </tr>
399
+ <tr>
400
+ <td style="border: 1px solid black;padding-left: 10px;" >
401
+ 2011-08-23
402
+ </td>
403
+ <td style="border: 1px solid black;padding-left: 10px;" >
404
+ (0003)
405
+ </td>
406
+ <td style="border: 1px solid black;padding-left: 10px;" >
407
+ <span style="font-weight: bold;" >
408
+ Tom May
409
+ </span>
410
+ / tom@gist.com
411
+ </td>
412
+ </tr>
413
+ <tr>
414
+ <td style="border: 1px solid black;padding-left: 10px;" >
415
+ 2011-08-24
416
+ </td>
417
+ <td style="border: 1px solid black;padding-left: 10px;" >
418
+ (0002)
419
+ </td>
420
+ <td style="border: 1px solid black;padding-left: 10px;" >
421
+ <span style="font-weight: bold;" >
422
+ Thiago Morello
423
+ </span>
424
+ / morellon@gmail.com
425
+ </td>
426
+ </tr>
427
+ <tr>
428
+ <td style="border: 1px solid black;padding-left: 10px;" >
429
+ 2011-09-11
430
+ </td>
431
+ <td style="border: 1px solid black;padding-left: 10px;" >
432
+ (0003)
433
+ </td>
434
+ <td style="border: 1px solid black;padding-left: 10px;" >
435
+ <span style="font-weight: bold;" >
436
+ Lucas Hills
437
+ </span>
438
+ / info@lucashills.com
439
+ </td>
440
+ </tr>
441
+ <tr>
442
+ <td style="border: 1px solid black;padding-left: 10px;" >
443
+ 2011-11-20
444
+ </td>
445
+ <td style="border: 1px solid black;padding-left: 10px;" >
446
+ (0002)
447
+ </td>
448
+ <td style="border: 1px solid black;padding-left: 10px;" >
449
+ <span style="font-weight: bold;" >
450
+ Chris Needham
451
+ </span>
452
+ / chrisn303@gmail.com
453
+ </td>
454
+ </tr>
455
+ <tr>
456
+ <td style="border: 1px solid black;padding-left: 10px;" >
457
+ 2011-12-11
458
+ </td>
459
+ <td style="border: 1px solid black;padding-left: 10px;" >
460
+ (0003)
461
+ </td>
462
+ <td style="border: 1px solid black;padding-left: 10px;" >
463
+ <span style="font-weight: bold;" >
464
+ R.I.Pienaar
465
+ </span>
466
+ / rip@devco.net
467
+ </td>
468
+ </tr>
469
+ <tr>
470
+ <td style="border: 1px solid black;padding-left: 10px;" >
471
+ 2011-12-13
472
+ </td>
473
+ <td style="border: 1px solid black;padding-left: 10px;" >
474
+ (0001)
475
+ </td>
476
+ <td style="border: 1px solid black;padding-left: 10px;" >
477
+ <span style="font-weight: bold;" >
478
+ tworker
479
+ </span>
480
+ / tworker@onyx.ove.com
481
+ </td>
482
+ </tr>
483
+ <tr>
484
+ <td style="border: 1px solid black;padding-left: 10px;" >
485
+ 2012-03-16
486
+ </td>
487
+ <td style="border: 1px solid black;padding-left: 10px;" >
488
+ (0001)
489
+ </td>
490
+ <td style="border: 1px solid black;padding-left: 10px;" >
491
+ <span style="font-weight: bold;" >
492
+ James Pearson
493
+ </span>
494
+ / james@fearmediocrity.co.uk
495
+ </td>
496
+ </tr>
497
+ <tr>
498
+ <td style="border: 1px solid black;padding-left: 10px;" >
499
+ 2012-05-10
500
+ </td>
501
+ <td style="border: 1px solid black;padding-left: 10px;" >
502
+ (0001)
503
+ </td>
504
+ <td style="border: 1px solid black;padding-left: 10px;" >
505
+ <span style="font-weight: bold;" >
506
+ Tommy Bishop
507
+ </span>
508
+ / bishop.thomas@gmail.com
509
+ </td>
510
+ </tr>
511
+ <tr>
512
+ <td style="border: 1px solid black;padding-left: 10px;" >
513
+ 2012-06-18
514
+ </td>
515
+ <td style="border: 1px solid black;padding-left: 10px;" >
516
+ (0002)
517
+ </td>
518
+ <td style="border: 1px solid black;padding-left: 10px;" >
519
+ <span style="font-weight: bold;" >
520
+ Jeremy Gailor
521
+ </span>
522
+ / jeremy@infinitecube.com
523
+ </td>
524
+ </tr>
525
+ <tr>
526
+ <td style="border: 1px solid black;padding-left: 10px;" >
527
+ 2013-02-20
528
+ </td>
529
+ <td style="border: 1px solid black;padding-left: 10px;" >
530
+ (0002)
531
+ </td>
532
+ <td style="border: 1px solid black;padding-left: 10px;" >
533
+ <span style="font-weight: bold;" >
534
+ JP Hastings-Spital
535
+ </span>
536
+ / jphastings@gmail.com
537
+ </td>
538
+ </tr>
539
+ <tr>
540
+ <td style="border: 1px solid black;padding-left: 10px;" >
541
+ 2013-03-14
542
+ </td>
543
+ <td style="border: 1px solid black;padding-left: 10px;" >
544
+ (0003)
545
+ </td>
546
+ <td style="border: 1px solid black;padding-left: 10px;" >
547
+ <span style="font-weight: bold;" >
548
+ glennr
549
+ </span>
550
+ / glenn@siyelo.com
551
+ </td>
552
+ </tr>
553
+ <tr>
554
+ <td style="border: 1px solid black;padding-left: 10px;" >
555
+ 2013-07-29
556
+ </td>
557
+ <td style="border: 1px solid black;padding-left: 10px;" >
558
+ (0021)
559
+ </td>
560
+ <td style="border: 1px solid black;padding-left: 10px;" >
561
+ <span style="font-weight: bold;" >
562
+ Ian Smith
563
+ </span>
564
+ / ian.smith@mylookout.com
565
+ </td>
566
+ </tr>
567
+ <tr>
568
+ <td style="border: 1px solid black;padding-left: 10px;" >
569
+ 2013-08-07
570
+ </td>
571
+ <td style="border: 1px solid black;padding-left: 10px;" >
572
+ (0001)
573
+ </td>
574
+ <td style="border: 1px solid black;padding-left: 10px;" >
575
+ <span style="font-weight: bold;" >
576
+ Hiram Chirino
577
+ </span>
578
+ / hiram@hiramchirino.com
579
+ </td>
580
+ </tr>
581
+ <tr>
582
+ <td style="border: 1px solid black;padding-left: 10px;" >
583
+ 2013-08-15
584
+ </td>
585
+ <td style="border: 1px solid black;padding-left: 10px;" >
586
+ (0005)
587
+ </td>
588
+ <td style="border: 1px solid black;padding-left: 10px;" >
589
+ <span style="font-weight: bold;" >
590
+ Ian Smith
591
+ </span>
592
+ / ian.smith@lookout.com
593
+ </td>
594
+ </tr>
595
+ <tr>
596
+ <td style="border: 1px solid black;padding-left: 10px;" >
597
+ 2013-08-22
598
+ </td>
599
+ <td style="border: 1px solid black;padding-left: 10px;" >
600
+ (0007)
601
+ </td>
602
+ <td style="border: 1px solid black;padding-left: 10px;" >
603
+ <span style="font-weight: bold;" >
604
+ Ian Smith
605
+ </span>
606
+ / ismith@mit.edu
607
+ </td>
608
+ </tr>
609
+ <tr>
610
+ <td style="border: 1px solid black;padding-left: 10px;" >
611
+ 2013-09-26
612
+ </td>
613
+ <td style="border: 1px solid black;padding-left: 10px;" >
614
+ (0001)
615
+ </td>
616
+ <td style="border: 1px solid black;padding-left: 10px;" >
617
+ <span style="font-weight: bold;" >
618
+ Orazio Cotroneo
619
+ </span>
620
+ / orazio@we7.com
621
+ </td>
622
+ </tr>
623
+ <tr>
624
+ <td style="border: 1px solid black;padding-left: 10px;" >
625
+ 2013-10-22
626
+ </td>
627
+ <td style="border: 1px solid black;padding-left: 10px;" >
628
+ (0001)
629
+ </td>
630
+ <td style="border: 1px solid black;padding-left: 10px;" >
631
+ <span style="font-weight: bold;" >
632
+ OrazioWE7
633
+ </span>
634
+ / orazio@we7.com
635
+ </td>
636
+ </tr>
637
+ <tr>
638
+ <td style="border: 1px solid black;padding-left: 10px;" >
639
+ 2014-03-13
640
+ </td>
641
+ <td style="border: 1px solid black;padding-left: 10px;" >
642
+ (0001)
643
+ </td>
644
+ <td style="border: 1px solid black;padding-left: 10px;" >
645
+ <span style="font-weight: bold;" >
646
+ Richard Clamp
647
+ </span>
648
+ / richardc@unixbeard.net
649
+ </td>
650
+ </tr>
651
+ <tr>
652
+ <td style="border: 1px solid black;padding-left: 10px;" >
653
+ 2014-12-08
654
+ </td>
655
+ <td style="border: 1px solid black;padding-left: 10px;" >
656
+ (0001)
657
+ </td>
658
+ <td style="border: 1px solid black;padding-left: 10px;" >
659
+ <span style="font-weight: bold;" >
660
+ m4rCsi
661
+ </span>
662
+ / m4rCsi@gmail.com
663
+ </td>
664
+ </tr>
665
+ <tr>
666
+ <td style="border: 1px solid black;padding-left: 10px;" >
667
+ 2015-09-05
668
+ </td>
669
+ <td style="border: 1px solid black;padding-left: 10px;" >
670
+ (0001)
671
+ </td>
672
+ <td style="border: 1px solid black;padding-left: 10px;" >
673
+ <span style="font-weight: bold;" >
674
+ Michael Klishin
675
+ </span>
676
+ / michael@novemberain.com
677
+ </td>
678
+ </tr>
679
+ <tr>
680
+ <td style="border: 1px solid black;padding-left: 10px;" >
681
+ 2015-11-10
682
+ </td>
683
+ <td style="border: 1px solid black;padding-left: 10px;" >
684
+ (0002)
685
+ </td>
686
+ <td style="border: 1px solid black;padding-left: 10px;" >
687
+ <span style="font-weight: bold;" >
688
+ Patrick Sharp
689
+ </span>
690
+ / psharp@numerex.com
691
+ </td>
692
+ </tr>
693
+ <tr>
694
+ <td style="border: 1px solid black;padding-left: 10px;" >
695
+ 2016-02-03
696
+ </td>
697
+ <td style="border: 1px solid black;padding-left: 10px;" >
698
+ (0001)
699
+ </td>
700
+ <td style="border: 1px solid black;padding-left: 10px;" >
701
+ <span style="font-weight: bold;" >
702
+ Wayne Robinson
703
+ </span>
704
+ / wayne.robinson@gmail.com
705
+ </td>
706
+ </tr>
707
+ </table>
708
+