-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
3304 lines (3019 loc) · 133 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Portland Java User Group Meeting Info</title>
<meta name="description" content="Portland Oregon Java User Group">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/main.css">
</head>
<body class="container">
<div>
<span style="display: inline-block; vertical-align: bottom;">
<a href="http://pjug.org/" style="vertical-align: bottom;">
<img class="logo" src="/images/pjug.gif"></a>
</span>
<span style="padding: 0 20px;">
<a href="http://community.java.net/jugs">
<img src="/images/jug-button.gif"></a>
</span>
<span style="display: inline-block; vertical-align: middle;">
<a href="http://www.jetbrains.com/idea/features/javascript.html"
style="display: inline-block; background: #0d3a9e url(http://www.jetbrains.com/idea/opensource/img/all/banners/idea234x60_blue.gif) no-repeat 0 0; border: solid 1px #0d3a9e; margin: 0; padding: 0; text-decoration: none; text-indent: 0; letter-spacing: -0.001em; width: 185px; height: 58px;"
alt="Java IDE with advanced HTML/CSS/JS editor for hardcore web-developers"
title="Java IDE with advanced HTML/CSS/JS editor for hardcore web-developers">
<span
style="margin: -3px 0 0 42px; padding: 0; float: left; font-size: 10px; cursor:pointer; background-image: none; border: 0; color: #acc4f9; font-family: trebuchet ms,arial,sans-serif; font-weight: normal; text-align: left;">
Proud fan of
</span>
<span
style="margin: 33px 0 0 7px; padding:0 0 2px 0; line-height: 12px; font-size: 9px; cursor: pointer; background-image: none; border: 0; display: block; width: 240px; color: #acc4f9; font-family:trebuchet ms,arial,sans-serif; font-weight: normal; text-align: left;">
Java IDE with advanced HTML/CSS/JS<br>editor for hardcore web-developers
</span>
</a>
</span>
</div>
<div id="main" class="clearfix" style="margin-top: 50px;">
<div id="sidebar">
<div style="text-align: center; padding-top: 20px;">
<a href="http://www.java.net/">
<img src="/images/javanet-button.gif">
</a>
</div>
<div style="margin-left: 20px;">
<b><br>2015 Meetings<br></b>
<ul style="margin-left: -10px;">
<li>March 17</li>
<li>April 21</li>
<li>May 19</li>
<li>June 16</li>
<li>July 21</li>
<li>August 18</li>
<li>September 15</li>
<li>October 20</li>
<li>November 17</li>
<li>December 15</li>
</ul>
<div>
<b><br>JavaMail List<br></b>
<ul style="margin-left: -10px;">
<li style="padding-left: 20px; text-indent: -20px;">
<a onclick="alert('To unsubscribe send an email \nto: javamail-request@pjug.org\nwith the subject: unsubscribe')"
href="#emailAnchor">UNSUBSCRIBE<br>by email</a>
</li>
<li><a href="http://www.pjug.org/cgi-bin/mailman/listinfo/javamail">SUBSCRIBE</a></li>
<li><a href="http://www.pjug.org/cgi-bin/mailman/options/javamail">UNSUBSCRIBE</a></li>
<li><a href="http://www.pjug.org/pipermail/javamail">List Archives</a></li>
</ul>
</div>
<div style="padding: 20px 0 30px;">
<a href="http://twitter.com/pjug">
Twitter: @PJUG
</a>
</div>
<div>
<a href="http://jobsearch.monster.com/jobsearch.asp?cy=US&brd=1&lid=578&lid=579&fn=&q=java&sort=rv&vw=b">
Java Job Search 1
</a>
</div>
<div>
<a href="http://seeker.dice.com/seeker.epl?rel_code=1102&op=2">
Java Job Search 2
</a>
</div>
</div>
</div>
<div id="content">
<h1>PJUG Meeting Information</h1>
<!-- PIZZA DO NOT TOUCH! -->
<div style="margin-top: 25px;">
<a href="http://www.teksystems.com" style="text-decoration: none;">
<img src="images/pizza.jpg" width="120" style="vertical-align: middle;">
<span class="speakerHeader" style="display: inline-block; vertical-align: middle;">
THANK YOU<br>Pizza Sponsor:
</span>
<span class="speaker" style="vertical-align: middle;">
<img src="/images/teksystems-logo.jpg"
align="middle"
style="width: 100%; max-width: 350px;">
</span>
</a>
</div>
<!-- PIZZA DO NOT TOUCH! -->
<!-- -------------------------------------------------------- -->
<br>
<div>
<span class="speakerHeader">Date:</span>
<span class="speaker">Tuesday Mar 17th 6:30pm</span>
</div>
<br>
<div>
<span class="speakerHeader">Topic:</span>
<span class="speaker">An Introduction To Data Modeling Techniques in Cassandra</span>
</div>
<br>
<div class="speakerContent">
Steve will discuss NOSQL, CAP Theorem, eventual consistency, and data modeling techniques in Cassandra.
Following that will be a demonstration of some shell commands to create and query tables. We will discuss wide
and narrow rows in Cassandra, storage options, and capacity planning. We will take a brief look at Titan, a
graph database that can use Cassandra as a backing store. We will take a look at partition keys, clustering
columns, time series data, and how these choices affect the storage and performance of the solution. We will
discuss some of the real world challenges that come up, the trade offs associated with materialized views, plus
compare and contrast this to a typical relational model. Time permitting we will discuss some real world use
cases, and how Nike Social is using Cassandra to meet them.
</div>
<br>
<div>
<span class="speakerHeader">Speaker:</span>
<span class="speaker">Steve Hall</span>
</div>
<br>
<div class="speakerContent">
Steve Hall is a software engineer with over 15 years of experience. Steve is currently a full time engineer with
Nike Digital, where he focuses on REST, social networks, and social network integration.
</div>
<br>
<div>
<span class="speakerHeader">Location:</span>
</div>
<br>
<!-- -------------------------------------------------------- -->
<div class="speakerContent">
<!-- MAP HEADER DO NOT TOUCH!
<span class="speakerHeader">This Month's Meeting Location:</span>
<br>
<span class="speaker"></span>
<!-- ORACLE MAP
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<div><img alt="" src="/images/oracle-logo.gif" align="top"> </div>
</td>
<td style="vertical-align: top;"><span class="speaker"> Downtown Campus</span> <a target="_blank" href="http://maps.google.com/maps?f=q&hl=en&q=565+SW+Jefferson,+Portland,+OR+97204&ie=UTF8&om=1&z=16&ll=45.515093,-122.680324&spn=0.00848,0.030556&t=h">(MAP)</a><br>
<span class="speakerContent">8th Floor - Room
8005</span>
<span class="speakerContent"><a href="http://www.pacwestcenter.com">Pacwest Center</a><br>
</span><span class="speakerContent">1211
SW 5th Avenue</span>
<span class="speakerContent">Portland, Oregon</span>
</td>
</tr>
</tbody>
</table> -->
<!-- THETUS
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<div><img alt="" src="/images/thetus-logo.png" width="500" align="top"> </div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=34+Northwest+1st+Avenue,+Portland,+OR&aq=2&oq=34+NW+1st+Avenue&sll=45.519278,-122.679949&sspn=0.027574,0.038409&ie=UTF8&hq=&hnear=34+NW+1st+Ave,+Portland,+Oregon+97209&ll=45.523871,-122.6714&spn=0.027571,0.038409&t=m&z=14&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=34+Northwest+1st+Avenue,+Portland,+OR&aq=2&oq=34+NW+1st+Avenue&sll=45.519278,-122.679949&sspn=0.027574,0.038409&ie=UTF8&hq=&hnear=34+NW+1st+Ave,+Portland,+Oregon+97209&ll=45.523871,-122.6714&spn=0.027571,0.038409&t=m&z=14" style="color:#0000FF;text-align:left">View Larger Map</a></small>
<br>
<span class="speakerContent">34 NW 1st Avenue</span>
<span class="speakerContent">Portland, OR 97068</span>
</td>
</tr>
</tbody>
</table>
-->
<!-- Airship -->
<!--
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<div><img alt="" src="http://urbanairship.com/wp-content/themes/urbanairship/images/img_airship.png
" align="top"> Urban Airship</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<a href="https://maps.google.com/maps?q=334+NW+11th+Ave,+Portland,+OR+97209&client=safari&oe=UTF-8&hnear=334+NW+11th+Ave,+Portland,+Multnomah,+Oregon+97209&gl=us&t=m&z=16
">MAP</a>
</td>
</tr>
<br>
<span class="speakerContent">334 NW 11th Ave</span>
<span class="speakerContent">Portland, OR 97209</span>
</td>
</tr>
</tbody>
</table>
-->
<!-- JAMA
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/jama-logo.png" align="top">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">Jama Software</h3>
<p>1060 NW 9th Ave<br />Portland, OR 97209</p>
<iframe width="320" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=1060+NW+9th+Avenue+Portland,+OR+97209&sll=44.145447,-120.583402&sspn=4.785101,11.601562&t=h&ie=UTF8&hq=&hnear=1060+NW+9th+Ave,+Portland,+Oregon+97209&ll=45.530944,-122.680378&spn=0.01443,0.02738&z=14&iwloc=A&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=1060+NW+9th+Avenue+Portland,+OR+97209&sll=44.145447,-120.583402&sspn=4.785101,11.601562&t=h&ie=UTF8&hq=&hnear=1060+NW+9th+Ave,+Portland,+Oregon+97209&ll=45.530944,-122.680378&spn=0.01443,0.02738&z=14&iwloc=A" style="color:#0000FF;text-align:left">View Larger Map</a></small>
</td>
</tr>
</tbody>
</table> -->
<!-- JAMA South
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/jama-logo.png" align="top">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">Jama Software (South)</h3>
<p>334 NW 11th Ave<br />Portland, OR 97209</p>
<iframe width="320" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=334+NW+11th+Ave,+Portland,+OR&aq=0&oq=334+NW+11th+Ave&sll=45.543408,-122.654422&sspn=0.312106,0.727158&t=h&ie=UTF8&hq=&hnear=334+NW+11th+Ave,+Portland,+Oregon+97209&ll=45.525592,-122.681923&spn=0.014432,0.02738&z=14&iwloc=A&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=334+NW+11th+Ave,+Portland,+OR&aq=0&oq=334+NW+11th+Ave&sll=45.543408,-122.654422&sspn=0.312106,0.727158&t=h&ie=UTF8&hq=&hnear=334+NW+11th+Ave,+Portland,+Oregon+97209&ll=45.525592,-122.681923&spn=0.014432,0.02738&z=14&iwloc=A" style="color:#0000FF;text-align:left">View Larger Map</a></small>
</td>
</tr>
</tbody>
</table>
-->
<!-- JAMA new Taylor -->
<table style="width: 100%;">
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/jama-logo.png" align="top">
</td>
</tr>
<tr>
<td>
<div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">Jama Software</h3>
<p>135 SW Taylor Street <br>
Suite 200<br>
Portland, OR 97204
</p>
<p>Please take elevator to 3rd floor</p>
<iframe
src="https://www.google.com/maps/embed?pb=!1m16!1m12!1m3!1d2795.678474590998!2d-122.67487089999997!3d45.516550699999996!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!2m1!1s135+SW+Taylor+Street+Suite+200+Portland%2C+OR+97204!5e0!3m2!1sen!2sus!4v1426121488679"
width="100%"
height="240"
frameborder="0"
style="max-width: 350px; border: 0;">
</iframe>
</td>
</tr>
</tbody>
</table>
<!-- Gilt Groupe
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/gilt-tech.png" align="top" width="180">
</td>
</tr>
<tr>
<td><div>Gilt Groupe Portland</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<a href="http://maps.google.com/maps?q=222+NW+5th+Ave,+portland+oregon&hl=en&ll=45.524465,-122.674788&spn=0.008509,0.013937&hnear=222+NW+5th+Ave,+Portland,+Multnomah,+Oregon+97209&t=m&z=17&layer=c&cbll=45.524945,-122.67548&panoid=ws7Jv0oxOgE2tjKjsF4uKA&cbp=12,131.61,,0,0">MAP</a>
</td>
</tr>
<tr>
<td>
<span class="speakerContent">222 NW 5th Ave, 2nd floor (cross street: NW Davis)
</span>
<span class="speakerContent">Portland, OR 97209</span>
</td>
</tr>
</tbody>
</table>
-->
<!-- New Relic
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/newrelic.jpg" align="top" width="180">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">New Relic Portland</h3>
<p>111 SW 5th Avenue, Suite 2800<br />Portland, OR 97204</p>
<iframe width="320" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?oe=utf-8&client=firefox-a&channel=rcs&q=111+SW+5th+Avenue,+Suite+2800+Portland,+OR+97204&ie=UTF8&hq=&hnear=111+SW+5th+Ave+%232800,+Portland,+Multnomah,+Oregon+97204&gl=us&t=m&ll=45.527036,-122.677546&spn=0.028863,0.054846&z=14&iwloc=A&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?oe=utf-8&client=firefox-a&channel=rcs&q=111+SW+5th+Avenue,+Suite+2800+Portland,+OR+97204&ie=UTF8&hq=&hnear=111+SW+5th+Ave+%232800,+Portland,+Multnomah,+Oregon+97204&gl=us&t=m&ll=45.527036,-122.677546&spn=0.028863,0.054846&z=14&iwloc=A&source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small>
</td>
</tr>
</tbody>
</table> -->
<!-- New Relic - 29
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/newrelic.jpg" align="top" width="180">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">New Relic Portland</h3>
<p>111 SW 5th Avenue, Suite 2900<br />Portland, OR 97204</p>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2795.384920817177!2d-122.6759902!3d45.52245909999999!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x54950a06b0fad621%3A0xd7e06d1dd5e3a14e!2s111+SW+5th+Ave+%232900%2C+Portland%2C+OR+97204!5e0!3m2!1sen!2sus!4v1415592879047" width="320" height="240" frameborder="0" style="border:0"></iframe>
</td>
</tr>
</tbody>
</table> -->
<!-- PureSRC
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/puresrc-logo.jpg" align="top" width="180">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">PureSRC</h3>
<p>107 Se Washington, Suite 230<br />Portland, OR 97214</p>
<p>Meeting is in the Think Tank room 2<sup>nd</sup> Floor Suite 230</p>
<iframe width="320" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?q=107+Se+Washington,+Suite+230+Portland,+OR+97214&ie=UTF8&hq=&hnear=107+SE+Washington+St+%23230,+Portland,+Multnomah,+Oregon+97214&gl=us&t=m&ll=45.519278,-122.664242&spn=0.014433,0.02738&z=14&iwloc=A&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?q=107+Se+Washington,+Suite+230+Portland,+OR+97214&ie=UTF8&hq=&hnear=107+SE+Washington+St+%23230,+Portland,+Multnomah,+Oregon+97214&gl=us&t=m&ll=45.519278,-122.664242&spn=0.014433,0.02738&z=14&iwloc=A&source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small>
</td>
</tr>
</tbody>
</table>
-->
<!-- Nike
<table>
<tbody>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">Nike</h3>
<p>1 Bowerman Dr<br />Beaverton, OR 97005</p>
<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d11184.522903614914!2d-122.827073!3d45.507447!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x54950ec3c99cf4b7%3A0x6dc6aef4ae0b3d10!2s1+Bowerman+Dr!5e0!3m2!1sen!2sus!4v1399239808957" width="320" height="240" frameborder="0" style="border:0"></iframe>
</td>
</tr>
</tbody>
</table> -->
<!-- Jive
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<img alt="" src="/images/jive-software.svg" align="top">
</td>
</tr>
<tr>
<td><div></div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3 class="about-title-description headroom">Jive</h3>
<p>915 SW Stark Avenue<br />Portland, OR 97205</p>
<p>Federal Treasury Building 5th floor</p>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2795.4054115216377!2d-122.68045610000001!3d45.522046699999905!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x54950a0396c01af1%3A0x6d5de6fe65f89cdc!2s915+SW+Stark+St!5e0!3m2!1sen!2sus!4v1402893002828" width="320" height="240" frameborder="0" style="border:0"></iframe>
</td>
</tr>
</tbody>
</table> -->
<!-- TBA
<table>
<tbody>
<tr>
<td style="vertical-align: top;">
<div><img alt="TBA" src="" width="500" align="top"> </div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<br>
<span class="speakerContent">TBA</span>
<span class="speakerContent">TBA</span>
</td>
</tr>
</tbody>
</table>
-->
<!-- END MAP HEADER DO NOT TOUCH! -->
</div>
</div>
</div>
<h2 style="margin-top: 60px;">Past PJUG Presentations...</h2>
<!-- 2015-02-17 -->
<div class="prev">
<div class="prevTitle">Introduction to Amazon Web Services (AWS)</div>
<div class="prevSpeaker">Brian Mason</div>
<div class="prevLinks">
<a href="https://github.com/bmason42/presentations">(Slides)</a>
</div>
<div class="prevContent">
<p>
Agenda:
</p>
<ul>
<li>Quick overview of AWS</li>
<li>3 use case studies of services</li>
<li>Overview of the SDK and documentation</li>
<li>Q&A</li>
</ul>
</div>
</div>
<!--
<span class="speakerContent">
Brian Mason holds a Masters in Comp Science from Univ of IL. He has been developing for 25 years and currently works as developer at Netapp Inc.
</span>
-->
<!-- 2015-01-20 -->
<div class="prev">
<div class="prevTitle">Compile-Time Annotation Processing</div>
<div class="prevSpeaker">James R. Perkins</div>
<div class="prevLinks">
<a href="http://jamezp.github.io/talks/annotation-processor/#/">(Slides)</a>
<a href="https://github.com/jamezp/examples/tree/master/annotation-processor">(Examples)</a>
</div>
<div class="prevContent">
<p>
Runtime annotation can be slow. Learn how annotations can be used during compilation rather than runtime or just
as
documentation. We'll have a look at the annotation processing API <a href="https://jcp.org/en/jsr/detail?id=269">(JSR
269)</a> and look at some practical examples.
</p>
</div>
<!--
<span class="speakerContent">
James Perkins is a software developer at Red Hat working remotely from Portland, OR. He works on the WildFly Application Server, JBoss EAP, logging frameworks and JBeret (a JSR 352 batch implementation).
</span>
-->
</div>
<!-- 2014-12-16 -->
<div class="prev">
<div class="prevTitle">Discoveries in microbenchmarking with JMH</div>
<div class="prevSpeaker">Trask Stalnaker</div>
<div class="prevLinks">
<a href="https://trask.github.io/pjug-jmh/">(Slides)</a>
</div>
<div class="prevContent">
<p>
Microbenchmarking is fraught with peril. Method inlining. Dead code elimination. Constant
folding. False sharing. Loop unrolling. Bimorphic and megamorhpic call sites. This talk explores these fantastic
mysteries using JMH, the excellent microbenchmark harness from Oracle developed under the OpenJDK project.
</p>
</div>
<!-- bio -->
<!--
Trask Stalnaker is a 16-year Java programmer, author of Glowroot, Portland native and alumnus of Stanford University (BS Mathematics).
-->
</div>
<!-- 2014-11-18 -->
<div class="prev">
<div class="prevTitle">Grails Grown Up: How do we get sub 500 millisecond response?</div>
<div class="prevSpeaker">Todd Ellermann</div>
<div class="prevContent">
<p>
How do you handle 8-10 million monthly unique visitors with Grails? Build pages using
concurrency, SOLR, SQUID, and RESTful services on Grails, that's how!
</p>
<p>
In this session we will cover cutting edge use of Grails in a SOA environment to serve sub-second page
delivery, best practices and lessons learned so far at Virtualtourist.com
</p>
<p>
This talk was given in 2012 at UberConf and at SpringOne2GX and has been updated to also discuss the
extension of this platform to support PicPackApp.com a combination of native mobile applications and a responsive
Angular.JS web interface.
</p>
</div>
</div>
<!--
<span class="speakerContent">
He is currently the General Manager for VirtualTourist.com, HolidayWatchdog.com part of the TripAdvisor Media Group Companies. In 2008, VirtualTourist.com was acquired by TripAdvisor(TRIP)/Expedia(EXPE), and Todd was brought in to lead a team of Java/Groovy/Grails engineers in the redevelopment effort. A graduate of the University of Arizona, with a B.S. in Computer Engineering, and an MBA from ASU with an emphasis on management of the creative software engineering process. When he is not actively writing code for his own startup ideas, you will find him entertaining his daughters or getting lost in a glass of wine, both of which usually lead to other crazy startup ideas.
</span>
-->
<!-- 2014-10-21 -->
<div class="prev">
<div class="prevTitle">Building a Fault Tolerant API with Hystrix</div>
<div class="prevSpeaker">Ryan Dearing</div>
<div class="prevLinks">
<a href="https://speakerdeck.com/ryandearing/building-a-fault-tolerant-api-with-hystrix">(Slides)</a>
</div>
<div class="prevContent">
<p>
The API for Bodybuilding.com serves more than a hundred million API calls everyday across
hundreds of servers. Learn how we use Hystrix to build a distributed system that is both fault and latency
tolerant.
We will discuss the bulkhead and circuit breaker patterns used by Hystrix to provide a resilient and fast API.
</p>
</div>
<!--
I've been at Bodybuilding.com for 5 years. I'm currently the Engineering Manager for our Community API teams. Our API does over 100 million requests every day, so we have a heavy focus on performance, scalability, and resiliency. Prior to joining Bodybuilding, I was an engineer at MarkMonitor, a domain registrar for large corporations including Google, Facebook and Yahoo.-->
<!-- 2014-09-16 -->
<div class="prev">
<div class="prevTitle">Driving Mobile Applications with Appium for Automated Testing</div>
<div class="prevSpeaker">Ian Downard</div>
<div class="prevContent">
<p>
The objective of this talk is to gain familiarization with Appium - a selenium-based tool for testing mobile
applications. Through a series live demos we'll discuss automation techniques for functional and
performance
testing of Android and iOS apps using Appium's Java API. We will also see a couple of other tools that can
be
useful for developing and testing mobile apps, including Xamarin Studio and Riverbed SteelCentral.
</p>
</div>
</div>
<!-- Ian Downard, a Developer Advocate for Riverbed Technologies, is a polyglot programmer with a penchant for C++ and Java. His professional career has focused on developing tools to optimize the performance of applications and networks. He has a knack for automation and has had success applying those skills broadly, from software testing to chicken coops. -->
<!-- 2014-08-19 -->
<div class="prev">
<div class="prevTitle"> Data Visualization in the Cloud - Cobbling together a real-world solution with Mongo,
Morphia, Spring, Web Services and Google Charts
</div>
<div class="prevSpeaker">Jon Batcheller</div>
<div class="prevContent">
<p>Defn:"Cobble" - "Put together something from available parts or elements"
</p>
<p>
We will take a real world problem and architect (aka cobble) an open source KISS solution (using parts
from multiple previous PJUG talks!).
</p>
<p>
The goal is to have cloud based charts and graphs available to the marketing guys when the data sources
are not.
We will roll up multiple local MySQL databases into a cloud based Mongo database using JSON services and Morphia
java objects.
We will then create new JAX-RS services to supply DataTables to a GWT implementation of Google Charts.
</p>
<p>
Voila! Marketing department is now happy
<br>(Well, no they are never happy - just placated)
</div>
<!--
<span class="speakerContent">
Jon Batcheller is a Java programmer, bar owner, teacher, veterinarian, auctioneer and founder of PJUG some 16 years ago!
</span>
-->
</div>
<!-- 2014-07-19 -->
<div class="prev">
<div class="prevTitle"> Glowroot: Open source monitoring for Java applications</div>
<div class="prevSpeaker">Trask Stalnaker</div>
<div class="prevContent">
<p>
After 4 years of incubating in my basement, Glowroot is ready to go out into the wild and
take on difficult performance issues and sporadic errors with its GUI configurable trace and metric definitions
and its core plugin support for servlets and JDBC.
</p>
</div>
</div>
<!-- TEMPLATE FOR PAST -->
<!-- 2014-06-15 -->
<div class="prev">
<div class="prevTitle">Rest Services with JAX-RS and Jersey</div>
<div class="prevSpeaker">Brian Mason</div>
<div class="prevLinks">
<a href="https://github.com/bmason42/JAX-RS-Examples">(Examples)</a>
</div>
<div class="prevContent">
<p>
This talk covers using JAX-RS and Jersey to create REST services for embedded system. It covers the basic of
JAX-RS and then moves into using Jackson for JSON encoding and using the streaming API to reduce memory
footprint for using REST API in embedded systems.
</p>
</div>
<!--
<span class="speakerContent">
Brian Mason holds a Masters in Comp Science from Univ of IL. He has been developing for 25 years and currently works as developer at Netapp Inc.
</span>
-->
</div>
<!-- 2014-05-20 -->
<div class="prev">
<div class="prevTitle">Applied Recommender Systems</div>
<div class="prevSpeaker">Bob Brehm</div>
<div class="prevContent">
<p>Ever wonder how Amazon and Netflix seem to have an uncanny ability to anticipate what products you might be
interested in based on your past selections? This presentation will focus on an actual Recommender System
application and will focus on:
</p>
<p> Recommender Systems Overview - a quick recap of my January talk on <a
href="http://www.slideshare.net/rpbrehm/recommendersystempresentationpjug01212014-32136430">Intro to
Recommenders</a>.
</p>
<ul>
<li>Apache Mahout - A production-grade Machine Learning system. One of Mahout's strong use cases is building
recommenders.
</li>
<li>Hadoop - Map/Reduce and other tools such as Hive</li>
<li>Spring XD - A Spring.io project to simplify the development of big data applications.</li>
</ul>
</div>
<!--
<span class="speakerContent">
Bob Brehm is a Java software developer in the Portland area. Most recently he has been contracting with Nike on their Go To Market team. Bob had dabbled with Java since the early days and got serious about it in 2002. Bob is keenly interested in and has decided to specialize in Enterprise Search, Recommenders and Big Data. Bob is married and has lived in the Portland area since 2001 when he relocated from Rochester, NY. He believes strongly that rain is better than shoveling snow any day! In his spare time Bob enjoys a diverse number of hobbies including electronics, open-source projects, reading, exploring Portland, and sports.
</span>
-->
</div>
<!-- 2014-04-15 -->
<div class="prev">
<div class="prevTitle">Taxes and Payments at Gilt Groupe</div>
<div class="prevSpeaker">Sean Sullivan</div>
<div class="prevLinks">
<a href="https://speakerdeck.com/sullis/taxes-and-payments-at-gilt">(Slides)</a>
</div>
<div class="prevContent">
<p>
Gilt is an online retailer based out of New York City. Gilt's main site, gilt.com, offers luxury apparel
and home furnishings. This talk will discuss how Gilt.com supports taxes and payments. We'll discuss Gilt's
checkout system and order processing backend.
</p>
</div>
</div>
<!-- 2014-03-18 -->
<div class="prev">
<div class="prevTitle">Clojure: your new favorite programming language</div>
<div class="prevSpeaker">Howard Lewis Ship</div>
<div class="prevContent">
<p>
Clojure is a fascinating new(er) programming language, created by Rich Hickey, that combines the ubiquity and
performance of Java with the power and expressiveness of Lisp. Clojure excels at interesting problems,
especially those involving concurrency, but can also freely interoperate with standard Java. Clojure developers
quickly become passionate about this odd little hybrid: it's easy to learn, yet deeply powerful, and is at the
heart of a vibrant and exciting eco-system of tools and libraries.
</p>
</div>
</div>
<!-- 2014-02-18 -->
<div class="prev">
<div class="prevTitle">What's new in WildFly 8?</div>
<div class="prevSpeaker">James R. Perkins</div>
<div class="prevLinks">
<a href="http://htmlpreview.github.io/?https://github.com/jamezp/talks/blob/master/pjug/Feb-2014/slides.html">(Slides)</a>
</div>
<div class="prevContent">
<p>
WildFly 8 (née JBoss Application Server) is Red Hat's open source Java EE 7 compliant application
server. It contains robust implementations of WebSocket, Batch, JSON, Concurrency, JMS2, JAX-RS 2, CDI 1.1, and
all Java EE 7 technologies. Undertow is the new cutting-edge web server in WildFly 8 and is designed for maximum
throughput and scalability, including environments with over a million connections. The number of ports is
reduced used by multiplexing protocols over HTTP using HTTP Upgrade.
</p>
<p>
Role Based Access Control support organizations with separated management responsibilities and restrictions.
Roles represent different sets of permissions such as runtime operation execution, configuration areas that can
read or written, and the ability to audit changes and manage users. In addition a new restricted audit log can
be enabled including the ability to offload to a secure syslog server.
</p>
<p>
WildFly also provides a "core" distribution that is ideal for framework authors that want to build
their own application runtime using the powerful WildFly 8 architecture.
</p>
<p>
NetBeans, IntelliJ, and Eclipse allow WildFly to be used for development, deployment, and debugging.</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Introduction to Recommender Systems</div>
<div class="prevSpeaker">Bob Brehm</div>
<div class="prevContent">
<p>Ever wonder how Amazon and Netflix seem to have an uncanny ability to anticipate what products you might be
interested in based on your past selections? This presentation will delve into how this accomplished thought the
use use of filters - both collaborative and content-based - and also hybrid techniques.
</p>
<p>
Two practical open source recommender systems will also be presented:
</p>
<p>
Lenskit framework - An open-source toolkit used primarily for researching and building recommender prototypes.
</p>
<p>
Apache Mahout - A production-grade Machine Learning system. One of Mahout's strong use cases is in building
recommenders.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Stalking the Lost Write: Memory Visibility in Concurrent Java</div>
<div class="prevSpeaker">Jeff Berkowitz</div>
<div class="prevLinks">
<a href="docs/JMM-6-PDF.pdf">(Slides)</a>
<a href="http://vimeo.com/82236352">(Video)</a>
</div>
<div class="prevContent">
<p>
Throughout its 18-year evolution, the Java language has played an industry-leading role in the tricky business
of specifying the behavior of concurrent programs. Java's contribution became particularly evident with the
introduction of the Java Memory Model (JMM) in Java 1.5.
</p>
<p>
This is an area in which a down-to-the-metal understanding can help developers strike the right balance between
safety and performance, so we'll start by motivating the discussion with counterintuitive low-level
examples. Then we'll work "up from the weeds" to describe the JMM as a basis for more familiar
programming patterns. We'll touch on how C, C++, and C# deal with the same issues and give a nod to
functional languages and Java 8.
</p>
<p>
This material can help most developers become more insightful about concurrency issues in their code. Be there
or be unsynchronized!
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Java 8</div>
<div class="prevSpeaker">Douglas Bullard</div>
<div class="prevLinks">
<a href="docs/JavaOne-2013-PJUG_key09.pdf">(Slides)</a>
</div>
<div class="prevContent">
<p>
This year at JavaOne, JDK 8 was one of the hottest topics. All of the good stuff has been summarized into this
presentation. Come and see what's coming next March! (Hint - think "lambdas"). Also included are
other subjects were of interest. Want to see how to run Java on your iOS device? There are already apps in the
Apple App Store written in Java - come see how!
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Getting started with Elasticsearch</div>
<div class="prevSpeaker">Steve Mayzak</div>
<div class="prevContent">
<p>
Will give a high level overview of what Elasticsearch is, a bit about why it was created, how it works under the
covers and how to use it with your Java/Groovy applications. I will then show a demo of indexing data into
Elasticsearch and then visualizing and searching on it using Kibana.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Mastering Time With Clojure and core.async</div>
<div class="prevSpeaker">Howard Lewis Ship</div>
<div class="prevLinks">
<a href="http://vimeo.com/74883884">(Video)</a>
</div>
<div class="prevContent">
<p>
We all know that the most challenging programming problems we're likely to face involve threading. Lots and lots
of threads,
coordinating and communicating in complex and non-deterministic ways. Clojure by itself gets us part of the way
there with immutable data-structures and threading primitives (such as atoms and agents), but coordinating many
threads in the ways demanded by real applications increases complexity and reduces performance.
</p>
<p>
core.async is a new library for Clojure that rationalizes and simplifies coordination of large numbers of
threads using communicating sequential processes; the end result is manageable code that looks and feels
synchronous ... easy to read, easy to maintain. As is often the case in Clojure, a few simple primitives work
together to open up a rich world of possibilities.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Testing Single-Page Web Applications Using Selenium WebDriver in Java</div>
<div class="prevSpeaker">Sean Adkinson</div>
<div class="prevLinks">
<a href="https://github.com/seanadkinson/pjug-webdriver">(Code & Slides)</a>
<a href="http://bit.ly/1f3WdGE"> (Video)</a>
</div>
<div class="prevContent">
<p>
Come and learn how Jama is using Selenium WebDriver to test their massive single-page web application. We'll
look at strategies and common pitfalls, as well as how it is been integrated into our processes.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Task Base Async Programming</div>
<div class="prevSpeaker">Brian Mason</div>
<div class="prevContent">
<p>
Providing scalability by maximizing throughput of mixed resource tasks in a multi-core environment.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Vert.x: Asynchronous Application Development for the JVM</div>
<div class="prevSpeaker">Ravi Luthra</div>
<div class="prevContent">
<p>
Ravi Luthra - A transplant from the Bay Area, CA, who is passionate about software development and specifically
Java and everything on the JVM. Pastimes are playing pool and camping when time permits.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Using HTML5 WebSockets for Building Real Time Web Pages</div>
<div class="prevSpeaker">Jon Batcheller</div>
<div class="prevContent">
<p>
One of the more interesting additions in HTML5 are WebSockets.
With bandwidth capable of streaming video and audio, it presents
a completely new world for building real time push web pages like
multi-user forms and HTML control panels.
</p>
<p>
We will review the browser client side of WebSockets and then the server
side communication with a backend Java Servlet via JSON, creating a
multi-user browser web page.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">Java at Scale: What Works and What Doesn't Work Nearly So Well</div>
<div class="prevSpeaker">Hank Shiffman
</div>
<div class="prevContent">
<p>
Java gets used everywhere and for everything, a reality that can be explained by its efficiency, its
portability, the productivity it offers developers, and the platform it provides for application frameworks and
non-Java languages. But all is not perfect; developers struggle against Java's greatest strength: its memory
management.
</p>
<p>
We'll talk about where Java needs help, the challenges it presents developers who need to provide reliable
performance, the reasons those challenges exist, and how developers work around them. And we'll take a little
time to talk about Azul Systems, its history of tackling Java scale issues and how it addresses the mismatch
between Java and big data.
</p>
</div>
</div>
<div class="prev">
<div class="prevTitle">What's new with Grails 2?</div>
<div class="prevSpeaker">Chris Buckley</div>
<div class="prevLinks">
<a href="https://github.com/PureSrc/pjug-grails">(Git Sample Project)</a>
</div>
<div class="prevContent">
<p>
What's new with Grails 2? An in-depth look at core Grails features and some tips and tricks to working with or
migrating to Grails 2. We will start the discussion with a through over view of Grails and why a developer might