-
Notifications
You must be signed in to change notification settings - Fork 0
/
botconf.plist
1842 lines (1842 loc) · 85.4 KB
/
botconf.plist
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>metadata</key>
<dict>
<key>lastUpdated</key>
<date>2018-03-08T07:52:56Z</date>
</dict>
<key>sessions</key>
<dict>
<key>amazon-alexa-workshop</key>
<dict>
<key>primaryKey</key>
<integer>2017130</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T08:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>0</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAB1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Amazon Alexa</string>
<key>sessionDescription</key>
<string>The Amazon Echo is more than a home toy – you can have the real star trek experience in your home w/ hooks into home automation platforms, streaming music, news, help you cook, tell you jokes, etc. We will go over how to make them via AWS Lamba+Groovy. Lee Fox and I will bring some devices (Feel free to BYOD if you’d like!) or we’ll just be use the echosim.io emulator developing Lambda Groovy Alexa Skills. You can open a free tier AWS account if you can before hand, if you can’t don’t worry – we’ll have some account access keys and login stood up to build skills and push them to the internet via development mode.
Prerequisites:
– Laptop with working mic
– Java 8
– Gradle
– SDK man
– Amazon.com account
– Optional: Free-tier amazon web services account.
– BYOD (dot, firetv, echo or tap) if you want!
</string>
<key>presenters</key>
<array>
<string>RyanVanderwerf</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>grails-security-workshop</key>
<dict>
<key>primaryKey</key>
<integer>2017131</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T08:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>1</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAF1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Grails Security Workshop</string>
<key>sessionDescription</key>
<string>This workshop involves lecture, sample projects, and hands-on lab exercises. It provides an overview of the
Grails Security Plugin Landscape.
– Spring Security Core
– Authentication
– Authorization
– Configuration with @Secured
– Configuration with InterceptUrl Map
– Configuration with RequestMap
– Spring Security UI
– Spring Security ACL – Access Control List
– LDAP authentication with Spring Security LDAP
– Spring Security REST
– Custom authentication with Spring Security Core Plugin
Workshop requirements:
– A computer with Java 8 installed as well as sdkman http://sdkman.io
– Lab exercises will be conducted in IntelliJ IDEA. If you do not have the licensed version, the Community Edition will work just fine for this course: https://www.jetbrains.com/idea/download
</string>
<key>presenters</key>
<array>
<string>sdelamo</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>lunch-3</key>
<dict>
<key>primaryKey</key>
<integer>2017132</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T11:00:00Z</date>
<key>duration</key>
<integer>60</integer>
<key>trackId</key>
<integer>1</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAJ1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Lunch</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>grails-rest-api-functional-testing</key>
<dict>
<key>primaryKey</key>
<integer>2017133</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T12:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>1</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAN1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Grails REST API functional testing</string>
<key>sessionDescription</key>
<string>Using Spock and Grails, shows how to test REST APIs end to end.
Requirements:
– Clone this repo: https://github.com/HelainSchoonjans/greach2018-functional-testing-workshop and take a look at the documentation.
– Execute ./gradlew build asciidoctor to download all needed dependencies
</string>
<key>presenters</key>
<array>
<string>Hlain1</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>creating-ambitious-uis-with-groovyfx-and-opendolphin</key>
<dict>
<key>primaryKey</key>
<integer>2017134</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T12:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>0</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAR1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Creating ambitious UIs with GroovyFX and OpenDolphin</string>
<key>sessionDescription</key>
<string>Ambitious user interfaces are not only dynamic and interactive, they also need to enable real-time collaboration between users, allow spontaneous change of devices, and facilitate features like undo/redo.
In this workshop, you will learn how to build such an application with the help of Groovy, Grails, GroovyFX, and OpenDolphin, which internally uses GPars.
</string>
<key>presenters</key>
<array>
<string>mittie</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>pen-testing-a-grails-application-finding-security-holes</key>
<dict>
<key>primaryKey</key>
<integer>2017135</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T15:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>1</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAV1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Pen testing a Grails Application (Finding security holes)</string>
<key>sessionDescription</key>
<string>For this workshop, I’ve created a very insecure application, that suffers a range of security problems. The participants should bring their own laptop, and try to find as many security issues as they can, with guidance and hints.
Towards the end of the workshop, we will use automated tools for checking for security issues, and try to incorporate them into the buildsteps of a Jenkins pipeline.
We will of cource also try to fix the problems, in the application.
</string>
<key>presenters</key>
<array>
<string>JacobAae</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>groovy-integration-testing-with-docker-and-testcontainers</key>
<dict>
<key>primaryKey</key>
<integer>2017136</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-15T15:00:00Z</date>
<key>duration</key>
<integer>180</integer>
<key>trackId</key>
<integer>0</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAZ1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Workshop: Groovy integration testing with Docker and TestContainers</string>
<key>sessionDescription</key>
<string>Use a production-like, portable test environment described in code – gone is the need for heavyweight manual setup of test systems and the pain of sharing test infrastructure with multiple developers and teams. Launch a fully functional testing suite not only consisting of unit tests, but also of integration tests, right from source control. And instead of manually writing and maintaining a bunch of brittle bash scripts for instrumenting your containers, participants will learn to leverage existing knowledge in writing Spocks tests and make use of the powerful TestContainers Java library and Spock extension.
Requirements
To complete this workshop, you should have installed locally:
– JDK 8
– Git
– Docker 17-CE
– Linux environment recommended
Using Docker for Windows and Docker for Mac should work as well, but we might struggle in helping with problems on these systems
Generals experience in using the following technologies is expected. You can tag along if you don’t know all the details, but some topics might get too complex if you are missing the basics.
– Java / Groovy
– JUnit4 / Spock
– Docker
Also, although not mandatory, it’s highly recommended to use IntelliJ IDEA, arguably the best IDE for Java and JVM language development. You can just use the Community Edition if you want to.
Getting the example project
Checkout the project from Github and run a quick Gradle build in order to check if everything works (the test is expected to fail )
git clone git@github.com:kiview/testcontainers-groovy-integration-tests-workshop-workspace.git
cd testcontainers-groovy-integration-tests-workshop-workspace
./gradlew build
</string>
<key>presenters</key>
<array>
<string>Kiview</string>
<string>faradaxian</string>
</array>
<key>roomId</key>
<integer>0</integer>
</dict>
<key>registration</key>
<dict>
<key>primaryKey</key>
<integer>2017137</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T07:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAd1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Registration</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>welcome-to-greach-2018</key>
<dict>
<key>primaryKey</key>
<integer>2017138</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T07:45:00Z</date>
<key>duration</key>
<integer>15</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAh1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Welcome to Greach 2018</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>groovy-keynote-2-5-roadmap</key>
<dict>
<key>primaryKey</key>
<integer>2017139</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T08:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAl1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Groovy Keynote: 2.5+ Roadmap</string>
<key>sessionDescription</key>
<string>This talk looks at the latest features in Apache Groovy in 2.5, 2.6 and 3.0. This includes new AST transformations, new macro features, the new Parrot parser and a myriad of other new miscellaneous features.
The talk outlines a broad roadmap of how the new features are planned to be rolled out and the system requirements for each version including the levels of JDK 9+ support.
</string>
<key>presenters</key>
<array>
<string>paulk_asert</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>testing-grails-with-dru-gru</key>
<dict>
<key>primaryKey</key>
<integer>2017140</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T09:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAp1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string><![CDATA[Testing Grails with Dru & Gru]]></string>
<key>sessionDescription</key>
<string>Dru is a Data Reconstruction Utility which helps you to utilise production data within unit tests. Gru is Groovy HTTP Testing Utility which simplifies testing Grails controllers. Both together can help you extremely simplify your Grails unit tests and bring them close to the integration tests as one big advantage of Gru is that it is evaluating controller in the context of url mappings and interceptors.
</string>
<key>presenters</key>
<array>
<string>musketyr</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>building-dsl-using-groovy</key>
<dict>
<key>primaryKey</key>
<integer>2017141</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T09:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAt1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Building DSL using Groovy</string>
<key>sessionDescription</key>
<string>Apache Groovy is a dynamic language, for Java platform, aimed at improving developer productivity with familiar and easy to learn syntax. It’s meta programming capabilities makes it a good candidate for DSL.
Domain Specific Languages (DSLs) have become a valuable part of the Groovy idiom. DSLs are used in native Groovy builders, Grails and GORM, and testing frameworks. To a developer, DSLs are consumable and understandable, which makes implementation more fluid compared to traditional programming. But how is a DSL implemented? How does it work behind the scenes?
DSL’s are meant to target a particular type of problem. They are short expressive means of programming that fit well in a narrow context. For example with GORM, you can express hibernate mapping with a DSL rather than XML.
static mapping = {
table 'person'
columns {
name column:'name'
}
}
In this talk, we will talk about Groovy DSL which will be focused on basic concepts.
</string>
<key>presenters</key>
<array>
<string>puneetbhl</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>coffee-break</key>
<dict>
<key>primaryKey</key>
<integer>2017142</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T09:45:00Z</date>
<key>duration</key>
<integer>30</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAAx1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Coffee Break</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>ive-seen-grails-code-you-wouldnt-believe</key>
<dict>
<key>primaryKey</key>
<integer>2017143</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T10:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAA11cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>I’ve seen Grails code you wouldn’t believe…</string>
<key>sessionDescription</key>
<string>…Or how to properly write maintainable Grails applications.
Over the years I’ve created a lot of different Grails applications and I’ve learnt from my mistakes about how to avoid problems and pitfalls for future projects. During more than a year now I’ve also been helping clients to improve their code and develop new features in their applications.
I’ve seen code, a lot of code that could have been done in a different way to make it maintainable and easy to read and modify in the future.
In this talk I’ll show Grails examples that I’ve seen and I’ve refactored to make the code better. You’ll also see code examples that you shouldn’t write ever and different options that you should write.
I promise no developers were harmed in the making of this talk.
</string>
<key>presenters</key>
<array>
<string>ilopmar</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>a-microservice-two-ways</key>
<dict>
<key>primaryKey</key>
<integer>2017144</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T10:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAA51cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>A Microservice Two Ways</string>
<key>sessionDescription</key>
<string>We will build out the same microservice in both Grails and Ratpack. See how they each framework compares. There will not be a winner but a show of strengths and differences of both frameworks. We will cover RDMS interactions, NoSQL interactions, caching, json marshaling, and testing.
At the end of this talk you will have a better understanding of how these frameworks relate to each other and be able to use these differences to pick the right tool for the job.
</string>
<key>presenters</key>
<array>
<string>beckje01</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>building-grails-apps-for-google-cloud</key>
<dict>
<key>primaryKey</key>
<integer>2017145</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T11:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAA91cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Building Grails Apps for Google Cloud</string>
<key>sessionDescription</key>
<string>This talk will cover the basics of using Google cloud to build and deploy your Grails application. You will learn to use some basic services such as BigTable, Compute and Pub/Sub.
</string>
<key>presenters</key>
<array>
<string>RyanVanderwerf</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>groovy-gstring-magic</key>
<dict>
<key>primaryKey</key>
<integer>2017146</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T11:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABB1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Groovy GString magic</string>
<key>sessionDescription</key>
<string>In this presentation, we will study the magic of the Groovy GString!
We will dive into some of the convenience methods that Strings provide, as well as study how GStrings can be manipulated.
We will also see how we can enrich Strings with our own created methods, and how we can use template generaters to work with texts.
</string>
<key>presenters</key>
<array>
<string>JacobAae</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>lunch</key>
<dict>
<key>primaryKey</key>
<integer>2017147</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T12:00:00Z</date>
<key>duration</key>
<integer>60</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABF1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Lunch</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>from-functions-to-monadic-style</key>
<dict>
<key>primaryKey</key>
<integer>2017148</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T13:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABJ1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>From Functions to Monadic Style</string>
<key>sessionDescription</key>
<string><![CDATA[In this code-heavy presentation we start with the “simple” task of factorizing prime numbers and successively refactor until we reach a solution that looks almost like Haskell.
Not only should you enjoy the show but also improve your Groovy kung-fu along the way. In the end, we will even have the monadic >>= operator in a DSL-ish fashion!
]]></string>
<key>presenters</key>
<array>
<string>mittie</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>excel-in-groovy</key>
<dict>
<key>primaryKey</key>
<integer>2017149</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T13:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABN1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Excel in Groovy</string>
<key>sessionDescription</key>
<string>Business users love to interact with applications with spreadsheet files as much as the developers hates doing so. There are many ways how to generate Excel files in Groovy, starting with “CSV will do” approach or “Generate HTML and save it as XLS”, but what your users really is to get rich content full of colours, different borders and fonts, filters and more.
Apache POI is powerful library which allows you to create such documents but it is difficult to use. Spreadsheet Builder provides declarative DSL to create Excel files with grace. The DSL for writing spreadsheets is mirrored in query language to read spreadsheets which can be used to import or test generated files more easily. After short introduction, the framework will be presented on Groovy live examples.
</string>
<key>presenters</key>
<array>
<string>musketyr</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>mapping-a-tree-with-grails</key>
<dict>
<key>primaryKey</key>
<integer>2017150</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T14:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABR1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Mapping a tree with Grails</string>
<key>sessionDescription</key>
<string>One of the most typical data structures to use in any web application is a tree.
You may be creating an e-commerce application and you need to organise your products in categories. Or you may be programming a news web application and need to organise your posts in breadcrumbs. You need a tree.
Sergio del Amo, curator of the newsletter Groovy Calamari, illustrates how to map a tree with GORM and SQL using an Adjacency List, a Path Enumeration, Nested Sets or Closure Tables. We will evaluate how each solution performs in terms of ease of child querying, tree querying, insertion, deletion or referencial integrity.
If you ever need to map a tree in a relation database you will learn something valuable in this talk.
</string>
<key>presenters</key>
<array>
<string>sdelamo</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>add-some-groovy-magic-to-your-java-project-why-where-and-how-to-leverage-groovy-in-a-java-codebase</key>
<dict>
<key>primaryKey</key>
<integer>2017151</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T14:00:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABV1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Add some Groovy magic to your Java project – why, where and how to leverage Groovy in a Java codebase</string>
<key>sessionDescription</key>
<string>Given the fact that Groovy is such a powerful and flexible technology, with a very flat learning curve for Java developers, I’m always amazed by how little it’s used in Java projects and how many Java devs there are that have never coded a line of Groovy code. I think in this way, they are missing out on a very strong device in their programming toolbox.
This talk is dedicated to all the Java developers interested in making their life easier by adding some Groovy goodness to their projects. I will present practical and easy ways of incorporating Groovy into any Java project, including such areas as tests, generating demo data, scripting, building your project and, finally, Continuous Delivery infrastructure.
</string>
<key>presenters</key>
<array>
<string>olga_maciaszek</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>coffee-break-2</key>
<dict>
<key>primaryKey</key>
<integer>2017152</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T14:45:00Z</date>
<key>duration</key>
<integer>30</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABZ1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Coffee Break</string>
<key>sessionDescription</key>
<string> </string>
<key>presenters</key>
<array>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>nitro-for-your-grails-app-how-to-improve-performance</key>
<dict>
<key>primaryKey</key>
<integer>2017153</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T15:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABd1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Nitro for your Grails App: how to improve performance!</string>
<key>sessionDescription</key>
<string>Is your grails application going too slow? Do your pages take several seconds to load? Does your application have large data processing? In this talk we will learn the main errors that weigh the performance of your applications and how to correct them.
</string>
<key>presenters</key>
<array>
<string>alberto_deavila</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>reactive-all-the-way-down-with-ratpack-rxgroovy-react-and-rabbitmq</key>
<dict>
<key>primaryKey</key>
<integer>2017154</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T15:15:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABh1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Reactive All The Way Down with Ratpack, RxGroovy, React, and RabbitMq</string>
<key>sessionDescription</key>
<string>There are many advantages to writing programs using a functional style. Groovy is a multi-faceted language which supports both functional and imperative styles of programming. This talk looks at how to use Groovy while adhering to the most popular functional programming idioms.
Topics covered include using closures, currying and partial evaluation, closure composition, Groovy meta-programming and type checking tricks for the functional programmer, recursion, trampolining, using Java functional libraries, immutable data structures, lazy and infinite lists and leveraging Java8 lambdas.
</string>
<key>presenters</key>
<array>
<string>svpember</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>grails-keynote</key>
<dict>
<key>primaryKey</key>
<integer>2017155</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-16T16:15:00Z</date>
<key>duration</key>
<integer>60</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABl1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Launching the Micro Future: Groovy, Grails and Project Particle</string>
<key>sessionDescription</key>
<string>In this keynote, Grails founder and project lead Graeme Rocher will present the vision for the future of application development in the Micro Service and “Server-less” era. Presenting for the first time “Project Particle”, the new Micro Services application development framework for Groovy and Java, built on Netty and designed from the ground-up to make developing Micro services easier.
Graeme will show how Grails, GORM and Project Particle’s futures are linked and how, once again, the Groovy and Grails team at OCI will take productivity to the next level when developing Micro Services.
</string>
<key>presenters</key>
<array>
<string>graemerocher</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>grails-3-testing-optimization</key>
<dict>
<key>primaryKey</key>
<integer>2017156</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-17T07:30:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABp1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Grails 3 testing optimization</string>
<key>sessionDescription</key>
<string><![CDATA[There aren’t any fast rules for speeding up your Grails test, but In this talk you will learn some optimization tips & tricks to setup and design tests in a more clean and efficient manner.
]]></string>
<key>presenters</key>
<array>
<string>Ev3Kieras</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>docs-as-code-arc42-asciidoc-gradle-co-combined</key>
<dict>
<key>primaryKey</key>
<integer>2017157</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-17T07:30:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABt1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string><![CDATA[Docs-as code: arc42, AsciiDoc, Gradle & Co. combined]]></string>
<key>sessionDescription</key>
<string><![CDATA[The combination of AsciiDoc and Gradle should be well known by now. But what if you want to go beyond? Have you ever tried to include UML diagrams the easy way, convert Excel to AsciiDoc or export your results to Confluence?
This talk shows you what you can really do if you treat your docs as code and apply some tricks you only did to your code before.
Forget about copy & paste your images to your documentation – let the build do it!
Create different docs for different stakeholders and even run automated tests on your docs!
]]></string>
<key>presenters</key>
<array>
<string>RalfDMueller</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>hands-on-debugging-in-microservices-with-zipkin</key>
<dict>
<key>primaryKey</key>
<integer>2017158</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-17T08:30:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>3</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAABx1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Hands on Debugging in Microservices with Zipkin</string>
<key>sessionDescription</key>
<string>As the complexity of our systems grow so must our tooling, Zipkin is a great distributed tracing tool that helps deal with tracing in microservices. But once we have to tool in place how do we actually fix problems in our system? We have been using zipkin in production at SmartThings so I’m going to share our insights.
In this talk we will review how to get quickly get zipkin tracing added to Ratpack and Grails then actually go through debugging some issues. We will also cover strategies for interactions with mobile / external clients and how to figure out an amount to sample at.
No zipkin experience required.
</string>
<key>presenters</key>
<array>
<string>beckje01</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>reactive-microservices-with-particle</key>
<dict>
<key>primaryKey</key>
<integer>2017159</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-17T08:30:00Z</date>
<key>duration</key>
<integer>45</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAB11cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>
<key>title</key>
<string>Reactive microservices with Particle (code name)</string>
<key>sessionDescription</key>
<string><![CDATA[Particle (code name) is a modern, JVM-based, full stack Micro Services framework designed for building modular, easily testable Micro Service applications. Particle is developed by the creators of Grails and takes inspiration from lessons learnt over the years building real-world applications from monoliths to Micro Services using Spring, Spring Boot and Grails.
This session covers the current features of Particle for building microservices, such as:
– Dependency Injection and Inversion of Control (IoC).
– Configuration system.
– HTTP services.
– Cloud and serverless deployments.
– Management & Monitoring.
]]></string>
<key>presenters</key>
<array>
<string>alvaro_sanchez</string>
</array>
<key>roomId</key>
<integer>1</integer>
</dict>
<key>coffee-break-4</key>
<dict>
<key>primaryKey</key>
<integer>2017160</integer>
<key>active</key>
<true/>
<key>date</key>
<date>2018-03-17T09:15:00Z</date>
<key>duration</key>
<integer>30</integer>
<key>trackId</key>
<integer>2</integer>
<key>column</key>
<integer>1</integer>
<key>sessionNumber</key>
<data>
rO0ABXNyACdvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR1N0cmluZ0ltcGwxs0tn+33pEgIAAVsAB3N0cmluZ3N0ABNbTGphdmEvbGFuZy9TdHJpbmc7eHIAE2dyb292eS5sYW5nLkdTdHJpbmfbY952kMsIzQIAAVsABnZhbHVlc3QAE1tMamF2YS9sYW5nL09iamVjdDt4cHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ0AAdUcmFjayAyc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAAAB51cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAADdAAAdAABLXEAfgAN
</data>