-
Notifications
You must be signed in to change notification settings - Fork 1
/
events.html
executable file
·758 lines (738 loc) · 69.2 KB
/
events.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
<!DOCTYPE html>
<html lang="ru">
<head>
<title>JUG.EKB</title>
<meta charset="utf-8">
<meta name="author" content="Naumen">
<link rel="icon" href="favicon.png" type="image/x-icon">
<link rel="shortcut icon" href="favicon.png" type="image/x-icon"/>
<link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/responsive.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/touchTouch.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/kwicks-slider.css" type="text/css" media="screen">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/touchTouch.jquery.js"></script>
<style type="text/css">
.container {
width: 968px;
}
.title {
font-size: 28px;
}
</style>
<style scoped="scoped">
.video {
}
.text-div {
margin-left: 215px
}
.main-text {
line-height: 1.3;
text-align: justify
}
.author {
color: #414141
}
.avatar {
float: left
}
.presentation {
margin-top: 15px;
}
</style>
<!--[if lt IE 8]>
<div style='text-align:center'>
<a href="http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode">
<img src="http://www.theie6countdown.com/img/upgrade.jpg" border="0" alt=""/>
</a>
</div>
<![endif]-->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<link rel="stylesheet" href="css/docs.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400' rel='stylesheet' type='text/css'>
<![endif]-->
</head>
<body>
<div class="spinner"></div>
<!-- header start -->
<header>
<div class="container clearfix">
<div class="row">
<div class="span12">
<div class="navbar navbar_">
<div class="container">
<h1 class="brand_">
<a href="index.html">
<div style="margin: -10px 0 0 -40px">
<img style="margin-right: 15px; height: 82px" src="img/logo.png">
</div>
</a>
</h1>
<a class="btn btn-navbar btn-navbar_" data-toggle="collapse" data-target=".nav-collapse_">
Menu<span class="icon-bar"></span>
</a>
<div class="nav-collapse nav-collapse_ collapse">
<ul class="nav sf-menu">
<li><a href="index.html">Анонсы</a></li>
<li class="active"><a href="events.html">Встречи</a></li>
<li><a href="sponsors.html">Партнеры</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<!-- content -->
<div id="content" class="content-extra">
<div class="row-1">
<div class="container">
<div class="row">
<h4 style="font-size: 28px; margin-bottom: -20px">Прошедшие встречи</h4>
<ul>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#twelveth">Двенадцатая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#eleventh">Одиннадцатая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#tenth">Десятая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#nineth">Девятая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#eighth">Восьмая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#seven">Седьмая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#sixth">Шестая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#fifth">Пятая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#fourth">Четвертая встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#third">Третья встреча</a></h3></li>
<li><h3 style="font-size: 22px; margin-bottom: -25px"><a href="#second">Вторая встреча</a></h3></li>
<li><h3 style="font-size: 22px"><a href="#first">Первая встреча</a></h3></li>
</ul>
</div>
<div class="row">
<article id="twelveth">
<h4>Двенадцатая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p style="line-height: 1.3; text-align: justify">
28 февраля состоялась двенадцатая встреча JUG.EKB!
</p>
<p style="line-height: 1.3; text-align: justify">
Официальная часть была на 2,5 часа, за это время мы прослушали 3 доклада, задали все интересующие вопросы. А после сможем обсудили подробности с докладчиками и просто пообщались друг с другом на афтепати!
<br/>
<br/>
<b>Доклады встречи:</b>
</p>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
1. Андрей Аркаев (руководитель группы разработки, Naumen) - Хватит это терпеть: внедряем свеженький SpringBoot в большой legacy-проект
<br/>
<br/>
Java-мир сильно изменился с появлением SpringBoot и ощутимо облегчил жизнь Java-разработчиков во многих аспектах. И всё бы хорошо, но, когда у вас гигантская 12-летняя кодовая база и 140 различных инсталляций в продакшене, зачастую, об этом можно только мечтать.
Мы решили, что так жить не хотим, и внедрили SpringBoot. На встрече поговорим о том, что конкретно нас сподвигло на изменения, как подготовить себя и команду, с какими проблемами нам пришлось столкнуться и, что в итоге у нас получилось.
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/75OSYDyzRQ4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
2. Владимир Янченко (руководитель группы технической поддержки и внутренней инфраструктуры, Naumen) - Большое Enterprise приложение для маленькой такой компании
<br/>
<br/>
16 ядер и 24 гб памяти — средний сервер приложения для нашего Enterprise продукта. А что делать, если есть всего 2 гб памяти, 1 ядро и большое желание это запустить в production?
Из доклада вы узнаете об архитектуре нашей облачной платформы, почему мы решили экономить на ресурсах и как это реализовали, какие проблемы ждут при поддержке 300+ java приложений и что необходимо для быстрого решения этих проблем.
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/gMPReCiJ9WU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
3. Петр Попов (архитектор в tinkoff.ru, занимается созданием CRM системы) — Построение микросервисного приложение на Netflix OSS
<br/>
<br/>
"Немного расскажу про Eureka, Zuul, Ribbon, Feign, Hystrix и про проблемы решаемые стеком. В рамках live coding сессии покажу как изготовить приложение с использованием стека".
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/89GHaqu3SBE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
</div>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
<br/>
Фото: <a href="https://vk.com/album-61807294_259728928">https://vk.com/album-61807294_259728928</a>
</p>
</div>
<p style="line-height: 1.3; text-align: justify">
До встречи на следующей встрече сообщества JUG.EKB!
</p>
<div class="clear"></div>
</div>
<div class="row">
<article id="eleventh">
<h4>Одиннадцатая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p style="line-height: 1.3; text-align: justify">
Очередной JUG.EKB прошел 13 сентября в лофте "Титры", в программе было два доклада.
</p>
<p style="line-height: 1.3; text-align: justify">
Официальная часть встречи длилась примерно 2 часа. За это время мы не только послушали доклады, но и обсудили разные вопросы из мира Java.
<br/>
<br/>
<b>Доклады встречи:</b>
</p>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
1. Андрей Чернопрудов (Naumen, г. Екатеринбург) — Deep links, strong drinks
<br/>
<br/>
Доклад про исследование и разработку, казалось бы, простой фичи: открытие ссылок. Мы обсудим полный цикл разработки, начиная от глубин сложного backend и заканчивая реализацией на каждом клиенте. Везде свои грабли, подводные камни и костыли — как вы и любите.
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/957uGkLEpn8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
2. Алексей Стукалов и Юрий Артамонов (HAULMONT, г. Самара) — API на переправе не меняют — как построить стабильный API?
<br/>
<br/>
Вам знакомо то чувство, когда обновление того или иного фреймворка на давнем и стабильном проекте взрывает код и превращает его в красно-перечеркнутое месиво? Будучи разработчиками платформы CUBA нам до боли это знакомо. Так за время существования платформы, она поменяла под собой 3 ORM-а, 3 мажорных версии Vaadin, не говоря уже о Spring Framework. При этом, одной из задач, решаемых платформой, является именно сохранение стабильного API, чтобы наши пользователи не страдали от выше обозначенной проблемы и мигрировали на последние версии всех используемых в платформе библиотек. В этом выступлении мы поделимся своим опытом построения API, а также приемами, которые позволяют нам решать проблемы с переездом решений на базе CUBA на up-to-date стек.
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/JLGh08KXN08" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
</div>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
<br/>
Фото: <a href="https://vk.com/album-61807294_255480193">https://vk.com/album-61807294_255480193</a>
</p>
</div>
<p style="line-height: 1.3; text-align: justify">
До встречи на следующей встрече сообщества JUG.EKB!
</p>
<div class="clear"></div>
</div>
<div class="row">
<article id="tenth">
<h4>Десятая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p style="line-height: 1.3; text-align: justify">
1 марта прошла десятая встреча Java-разработчиков Екатеринбурга – JUG.EKB! В первый день весны мы послушали 2 доклада
</p>
<p style="line-height: 1.3; text-align: justify">
Официальная часть встречи длилась примерно 2,5 часа. За это время мы не только послушали доклады, но и задали вопросы спикерам, обсудили разные вопросы из мира Java.
Ведущим десятой встречи стал Андрей Чернопрудов (Руководитель группы мобильной разработки Naumen Service Desk), а программным директором – Денис Кирпиченков (руководитель группы разработки Naumen Service Desk).
После докладов мы дружно поели пиццу, познакомились со всеми участниками и смогли пообщаться в неформальной обстановке.
<br/>
<br/>
<b>Доклады встречи:</b>
</p>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
1. Дмитрий Колмогорцев (Инженер-программист Департамента систем автоматизации ИТ и процессов обслуживания, Naumen) сделал доклад на тему «Спасти поиск в приложении и не сойти с ума»
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/AxPNuz84PdY?ecver=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
2. Максим Гореликов из Альфа-Лаборатории (г. Москва) рассказал про эволюцию синхронной системы со Spring 5/Project reactor.
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/VTO0Itn1_6c?ecver=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</p>
</div>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
<br/>
Фото: <a href="https://vk.com/album-61807294_251193384">https://vk.com/album-61807294_251193384</a>
</p>
</div>
<p style="line-height: 1.3; text-align: justify">
До встречи на следующей встрече сообщества JUG.EKB!
</p>
<div class="clear"></div>
</div>
<div class="row">
<article id="nineth">
<h4>Девятая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<b><p>Доклады встречи:</p></b>
<p style="line-height: 1.3; text-align: justify">
При поддержке Naumen 5 октября 2017 г. состоялась девятая встреча JUG.EKB!
</p>
<p style="line-height: 1.3; text-align: justify">
Официальная часть длилась больше 2 часов, за это время более участники послушали 2 доклада, задали все интересующие вопросы, а также обсудили подробности с докладчиками в кулуарах. Ведущим восьмой встречи стал Андрей Чернопрудов (Naumen Service Desk).
</p>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
Ярослав Киселев (КРОК, г. Москва) - "Application Performance Monitoring: сравнение возможностей, проблемы и решения"
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/pfw1gpEsCaQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
Дмитрий Чуйко (BellSoft, г. Санкт-Петербург) - "Организация многопоточности по модели подписки в Java 9"
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/cpOLrURKgVQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</p>
</div>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
После официальной части все желающие смогли посетить afterparty и пообщаться со спикерами в неформальной обстановке.
<br/>
<br/>
Фото: <a href="https://vk.com/album-61807294_247477736">https://vk.com/album-61807294_247477736</a>
</p>
</div>
<p style="line-height: 1.3; text-align: justify">
До встречи на следующей встрече сообщества JUG.EKB!
</p>
<div class="clear"></div>
</div>
<div class="row">
<article id="eighth">
<h4>Восьмая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p style="line-height: 1.3; text-align: justify">
В Екатеринбурге при поддержке Naumen 3 марта 2017 г. состоялась восьмая встреча JUG.EKB!
</p>
<p style="line-height: 1.3; text-align: justify">
Официальная часть длилась около 3 часов, за это время более 70 участников успели прослушать 2 доклада, задать все интересующие вопросы, а также обсудить подробности с докладчиками в кулуарах. Ведущим восьмой встречи традиционно был Олег Хромов (Naumen, Департамент проектов в гос.секторе).
</p>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
Первым свой доклад делал Александр Мохов (Naumen, г. Екатеринбург) на тему «G1 GC: опыт миграции».
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/JGMf9-6m52o" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</p>
<p style="line-height: 1.3; text-align: justify">
Второй доклад сделали спикеры – Александр Тарасов (Одноклассники, г. Москва) и Кирилл Толкачёв (Альфа-Лаборатория, г. Москва) на тему «Микросервисы — Огонь, Вода и Медные трубы». Кстати, Александр и Кирилл в пятницу выступили с этим докладом в офисе Naumen.
</p>
</div>
<div style="width: 100%">
<p style="line-height: 1.3; text-align: justify">
После официальной части все желающие смогли посетить afterparty и пообщаться со спикерами в неформальной обстановке.
<br/>
<br/>
Фото: <a href="https://vk.com/album-61807294_241806322">https://vk.com/album-61807294_241806322 </a>
</p>
</div>
<p style="line-height: 1.3; text-align: justify">
До встречи на следующей встрече сообщества JUG.EKB!
</p>
<div class="clear"></div>
</div>
<div class="row">
<article id="seven">
<h4>Седьмая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Седьмая встреча JUG.EKB прошла 22 сентября в Коворкинге "Соль".</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div style="float: left">
<img src="img/cheremin.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Escape Analysis и скаляризация</p>
<p class="author">Руслан Черемин, Deutsche bank</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Работает с Java уже около 10 лет, начиная еще с версии 1.1. Вел разработку и клиентских и серверных приложений. В последние годы разрабатывал систему имитационного моделирования в Яндексе. В настоящее время занимается оптимизацией систем электронных торгов в Deutsche Bank.
</p>
<p style="line-height: 1.3; text-align: justify">
В высокопроизводительных приложениях аллокация нередко становится одним из узких мест — если не непосредственно, то через увеличение нагрузки на GC. Написание же garbage-less кода в джаве требует нетривиальных усилий, код становится сложнее и менее понятным. Современные JIT-ы умеют, в некоторых случаях, самостоятельно стирать аллокации короткоживущих объектов, превращая их поля в набор эквивалентных локальных переменных. Эта оптимизация (скаляризация) появилась еще в версии 1.6, и с тех пор прошло уже 7 лет, но в открытых источниках удивительно мало деталей — где и когда эта оптимизация срабатывает, а где не срабатывает, насколько надежно она работает, и что может ей помешать.
</p>
<p style="line-height: 1.3; text-align: justify">
"Доклад построен вокруг набора практических примеров, на которых, как на кошках, я изучал сильные и слабые стороны текущей реализации. В итоге, я надеюсь, у вас в репертуаре появится альтернативный способ создания garbage-less кода, не за счет ручного устранения аллокаций, а за счет использования более JIT-friendly аллокаций".
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/QBQoiLxh9lE" frameborder="0" allowfullscreen></iframe>
<iframe width="100%" height="380" src="http://www.youtube.com/embed/WyanmWXuEFU" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div style="float: left">
<img src="img/chujko.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Ahead of time компиляция для Hotspot</p>
<p class="author">Дмитрий Чуйко, Oracle</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Performance-инженер в Oracle. Более 10 лет опыта в различных компаниях, включая Borland, Yota, QuickOffice и Deutsche Bank.
</p>
<p style="line-height: 1.3; text-align: justify">
Существуют различные реализации Java. В некотрых из них есть ahead-of-time (AOT) компиляторы, причём подход к решению различный, да и постановка задачи разная. В Hotspot есть JIT‑компиляция, но нет стандартного AOT. Не обязательно, что так будет всегда. Мы поговорим о том, зачем может понадобится заранее получать нативный код, как это делается и работает в реализации для Hotspot. И с другой стороны, как Java-код может встраиваться в процесс JIT‑компиляции.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/kCZDm0Lw9gs" frameborder="0" allowfullscreen></iframe>
<iframe width="100%" height="380" src="http://www.youtube.com/embed/0YwEcHsu85c" frameborder="0" allowfullscreen></iframe>
<iframe width="100%" height="380" src="http://www.youtube.com/embed/RLvXHxX2Pv0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div class="row">
<article id="sixth">
<h4>Шестая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Шестая встреча JUG.EKB прошла 11 февраля в Коворкинге "Соль".</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div style="float: left">
<img src="img/ragozin.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Что должен знать о сетях каждый Java разработчик?</p>
<p class="author">Алексей Рагозин, Deutsche bank</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Алексей специализируется на разработке высоконагруженных распределённых систем на платформе Java. За более чем 10 лет в индустрии он собрал опыт разработки информационных систем в таких вертикалях как финансы, телеком, e-commerce и здравоохранение. С 2009 по 2011 возглавлял практику внедрения in-memory data grid решений в компании GridDynamics. В октябре 2011 года перешёл в Deustche Bank, где является ведущим специалистом в области технологий распределённого кэширования. Активный участник российских конференций, посвящённых разработке программного обеспечения и высокопроизводительных информационным системам.
</p>
<p style="line-height: 1.3; text-align: justify">
Протокол TCP существует уже более 30 лет. Сетевые коммуникации являются неотъемлемой частью практически любого современного приложения. Тем не менее, сетевое программирование продолжает оставаться зоной проблем и опасностей. Но несмотря на простой интерфейс, программирование "сокетов" далеко не простая задача. Тема этого доклада "правильное" использование TCP/IP и Java socket API. Знаете ли вы что происходит при закрытии сокета? Как опции TCP влияют на производительность? Какие исключения может кидать сокет в Java? - Не уверены, тогда этот доклад для вас.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/JIqR7ysbFR8" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div style="float: left">
<img src="img/polishuk.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Kotlin + Android: практический ликбез</p>
<p class="author">Дмитрий Полищук, Яндекс</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Дмитрий Полищук - разработчик Яндекс.Такси. Занимается разработкой программного обеспечения уже 10 лет, в основном встраиваемыми и мобильными приложениями. Под Android пишет с момента выхода самого первого SDK. Пришёл в Яндекс в 2015 году, участвует в разработке Такси и других интересных проектов.
</p>
<p style="line-height: 1.3; text-align: justify">
Весь мир ждет выхода первой версии нового языка программирования от JetBrains под названием Kotlin. Но в мире мобильной разработки под Android мы ожидаем его с еще большим трепетом. Этот язык уже сейчас решает большое количество наших задач, которые стандартными средствами решаются не очень красиво или нетривиально. Используя стандартную библиотеку языка Kotlin мы освобождаемся от всего того багажа утильных библиотек на java которые мы были вынуждены таскать из проекта в проект. У Kotlin отличный потенциал для разработки в реактивной парадигме, которая сейчас постоянно набирает популярность во всей индустрии и в том числе в разработке мобильных приложений. Но т.к. язык новый и сообщество очень молодое, то все шишки еще не набиты. Я расскажу про подводные камни при написании UI, реактивного программирования, DI и почему уже даже сейчас можно переходить с Java на Kotlin для Android. Доклад будет интересен не только мобильным разработчикам, но и всем, кто интересуется современными JVM языками.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/2oVpnArCdWI" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div style="float: left">
<img src="img/kargapolov.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Оптимизация GWT приложений</p>
<p class="author">Андрей Каргаполов, Naumen</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Андрей является экспертом в области разработки приложений на Java, опыт разработки 9 лет. Имеет ученую степень кандидата наук на стыке математики и программирования.
Андрей - главный инженер-программист Naumen, руководитель Челябинской группы разработки, занимается вопросами развития и оптимизации Naumen Service Desk 4.
</p>
<p style="line-height: 1.3; text-align: justify">
GWT позволяет писать клиентский код на Java, при этом трансляция Java в Java Script происходит автоматически. Но есть различные особенности и подводные камни, которые нужно учитывать при разработке.
В своем рассказе Андрей поделится опытом оптимизации и тюнинга GWT приложения.<br/>
Будут затронуты следующие вопросы:
<ul>
<li>анализ объема клиентского кода приложения</li><br/>
<li>минимификация и оптимизация через ключи компиляции GWT</li><br/>
<li>сравнение разрешения зависимостей в рантайме и на этапе компиляции</li><br/>
<li>разделение клиентского кода на части и их отложенная подгрузка</li>
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/gO4N-YKJymM" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div class="row">
<article id="fifth">
<h4>Пятая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Пятая встреча JUG.EKB прошла 1 октября в Коворкинге "Соль".</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div style="float: left">
<img src="img/alimenkov.png">
</div>
<div style="margin-left: 215px">
<p class="title">Нужен ли нам JMS в мире современных Java-технологий?</p>
<p class="author">Николай Алименков, Senior Delivery Manager в EPAM / XPInjection</p>
<p style="line-height: 1.2; text-align: justify; color: #747474">
Николай является экспертом в разработке приложений на Java и управлении командами. Имея опыт разработки более 10 лет,специализируется на разработке сложных распределённых масштабируемых систем. Более 6 лет Николай работает с Agile методологиями. На текущий момент практикующий технический лидер и Scrum Master. Алименков Николай имеет большой опыт в применении инженерных практик (TDD, CI, юнит тестирование, т.д.).
<br>
Николай – активный участник и докладчик на международных конференциях. Организатор и идеолог конференций Selenium Camp, JEEConf, XP Days Ukraine и IT Brunch. Создатель «Клуба анонимных разработчиков». Также он является активным членом сообщества Agile Ukraine.
</p>
<p style="line-height: 1.3; text-align: justify">
JMS известен в Java-мире как стандартное решение для реализации распределенной работы с помощью обмена сообщениями. Существует множество JMS провайдеров, как бесплатных, так и коммерческих. Большой процент разработчиков используют JMS везде, где нужно послать сообщение и обработать его на другом конце. Но существует множество альтернативных решений организовать эффективные очереди сообщений: AMQP, Redis, ZooKeeper, Apache Kafka или даже самописные очереди на Cassandra. Почему не использовать их вместо JMS?
<br>
В этом докладе мы обсудим краеугольные проблемы любой распределенной системы, основанной на обмене сообщениями, и уже с этими знаниями взглянем еще разок на JMS и альтернативы с точки зрения практических сценариев из реальной жизни.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/RVwXdCfzJZA" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div style="float: left">
<img src="img/koshelev.png">
</div>
<div style="margin-left: 215px">
<p class="title">Yet another technology stack in web-app development</p>
<p class="author">Григорий Кошелев, СКБ Контур</p>
<p class="main-text">
Григорий ведущий инженер-программист СКБ Контур, руководитель группы разработки Контур.Таможня.
</p>
<p style="line-height: 1.3; text-align: justify">
При разработке web-приложений перед Java-разработчиками встаёт вопрос выбора технологий. Часто разработчики хотят остаться в Java/XML-мире, выбирая GWT или JSF. Я постараюсь предложить решение, которое бы выходило за рамки Java/XML-мира, сохранив его плюсы и устранив некоторые его минусы. В основе решения со стороны сервера лежат Spring Framework и FreeMarker, а со стороны клиента – AngularJS и TypeScript. На докладе я расскажу про применение MVC одновременно на клиенте и сервере, двухуровневую шаблонизацию, особенность использования TypeScript.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/ZFv_pQKJL-w" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div class="row">
<article id="fourth">
<h4>Четвертая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Четвертая встреча JUG.EKB прошла 14 мая в Коворкинге "Соль".</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div style="float: left">
<img src="img/pangin.png">
</div>
<div style="margin-left: 215px">
<p class="title">Разработка высоконагруженного сервера на Java</p>
<p class="author">Андрей Паньгин, Одноклассники</p>
<p class="main-text">
Может ли один сервер на Java обрабатывать десятки тысяч запросов в секунду, принимать сотни тысяч подключений и отдавать гигабиты трафика?
Где-где, а в компании Одноклассники точно знают, как этого добиться, ведь у них на Java работают свыше 8000 серверов, обслуживая 48 млн пользователей ежедневно. <br/>
Андрей Паньгин, ведущий программист компании, расскажет про приёмы разработки высоконагруженных приложений. <br/>
Из доклада вы узнаете, в чём недостатки стандартного сетевого Java API, почему возникают JVM паузы, зачем вылезать за пределы Java Heap и как реализовать эффективный механизм удалённых вызов.
Будут затронуты вопросы I/O, кеширования, сериализации и межсерверного взаимодействия.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/kdow9j5J7ys" frameborder="0" allowfullscreen></iframe>
</div>
<p class="presentation"><a href="presentations/pangin-jug-ekb.pdf">Слайды</a></p>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div style="float: left">
<img src="img/kirpichenkov.png">
</div>
<div style="margin-left: 215px">
<p class="title">10 человеко-лет GWT</p>
<p class="author">Денис Кирпиченков, Naumen</p>
<p class="main-text">
Данный доклад посвящен набору инструментов Web-разработки Google Web Toolkit.
В своем рассказе я сделаю краткий обзор возможностей GWT, и поделюсь опытом разработки проекта на GWT объемом 10+ человеко-лет.
Из доклада Вы узнаете о том:
<ul>
<li style="margin-top: 10px">что делать если стандартного протокола RPC недостаточно</li>
<li style="margin-top: 10px">как лучше организовать backend для GWT</li>
<li style="margin-top: 10px">совместная работа GWT с javascript</li>
<li style="margin-top: 10px">как добавить новые возможности в GWT</li>
<li style="margin-top: 10px">анализ unhandled exceptions</li>
<li style="margin-top: 10px">тюнинг процесса сборки GWT-проекта</li>
</ul>
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/rnOvqvydp0Y" frameborder="0" allowfullscreen></iframe>
</div>
<p class="presentation"><a href="http://d0k1.github.io/JUG.EKB.GWT">Слайды</a></p>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div style="margin-top: 35px; width: 100%" > </div>
<div class="row">
<article id="third">
<h4>Третья встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Третья встреча JUG.EKB прошла 13 ноября в Коворкинге "Соль".</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div class="avatar">
<img src="img/ivanov.png">
</div>
<div style="margin-left: 215px">
<p class="title">Динамическая (JIT) компиляция в JVM</p>
<p class="author">Владимир Иванов из Oracle</p>
<p class="main-text">
Java абстрагирует большое количество технических деталей о платформе, на которой исполняется Java-приложение.
получить приемлемую скорость исполнения, Java-платформа активно использует динамическую компиляцию в виртуальной
Java-машине (JVM). Динамическая (Just-In-Time) компиляция повышает производительность за счет трансляции Java
байткода в машинный код в процессе работы приложения. Принцип работы существенно отличается от статических
компиляторов и для получения высокопроизводительного кода JVM использует другой набор методик компиляции.
В докладе будут описаны общие принципы динамической компиляции и ее особенности в применении к Java. Обзор
JIT-компиляторов в HotSpot JVM будет включать рассмотрение инструментов и методик анализа их работы
(от высокоуровневых решений и до машинного кода) и диагностирования проблем.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/sL8nt8CXsZQ" frameborder="0" allowfullscreen></iframe>
</div>
<!--<p class="presentation"><a href="presentations/jug1_scripts.pdf">Презентация</a></p>-->
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div class="avatar">
<img src="img/palmov.png">
</div>
<div style="margin-left: 215px">
<p style="font-size: 28px; line-height: 1.2;">Наскальное программирование</p>
<p style="color: #414141">Евгений Пальмов из Naumen</p>
<p style="line-height: 1.3; text-align: justify">
Платформа Java уже давно доказала своё право находиться на лидирующих позициях рынка,
зарекомендовав себя как отличную основу для разработки проектов любого калибра.
Однако есть ли жизнь после Java? А может быть Scala? В докладе будут рассмотрены
основные возможности Scala, от самых основ и до метапрограммирования на макросах,
а также как она предлагает с их помощью красиво и просто решать распространенные
проблемы в Java, при этом повышая общее качество и скорость написания кода.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/yloeoHbTZIc" frameborder="0" allowfullscreen></iframe>
</div>
<!--<p class="presentation"><a href="presentations/jug1_scripts.pdf">Презентация</a></p>-->
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div style="margin-top: 35px; width: 100%" > </div>
<div class="row">
<article id="second">
<h4>Вторая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Вторая встреча JUG.EKB прошла 29 июля в Коворгинге "Соль" (переулок Химиков, 3, 4 этаж ).</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div class="avatar">
<img src="img/elizarov.jpg">
</div>
<div style="margin-left: 215px">
<p class="title">Миллионы котировок в секунду на чистой Java</p>
<p class="author">Роман Елизаров из Devexperts</p>
<p class="main-text">
Доклад будет сконцентрирован на тех решениях и подходах, которые, исходя из реального опыта,
позволяют достичь разумный компромисс между производительностью и сложностью, что во многом и
обуславливает выбор платформы Java. Реальное сравнение с классическими поставщиками данных,
имеющих десятилетнюю историю развития и поддержки своего программного обеспечения на языках
низкого уровня, показывает что особенности Java не являются препятствием к созданию
высокопроизводительных систем обработки данных, а скорее наоборот, позволяют догнать и обогнать
конкурентов за счет наличия большего инструментария, увеличения продуктивности работы программистов,
и упрощения отладки и поддержки.
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/ApEEEOtmOjc" frameborder="0" allowfullscreen></iframe>
</div>
<!--<p class="presentation"><a href="presentations/jug1_scripts.pdf">Презентация</a></p>-->
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div class="avatar">
<img src="img/hitrin.jpg">
</div>
<div style="margin-left: 215px">
<p style="font-size: 28px; line-height: 1.2;">Оковы тяжкие падут: как перевести сборку проекта с Ant на Gradle</p>
<p style="color: #414141">Андрей Хитрин из Naumen</p>
<p style="line-height: 1.3; text-align: justify">
Платформа Java успешно прошла испытание временем, зарекомендовав себя в качестве основы для разработки
долгоживущих проектов. Однако, с возрастом у таких проектов накапливается немало недостатков. Одним из
них может являться устаревшая система сборки приложения.<br/>
Что следует делать, если Вы хотите избавиться от колоссальных по размерам и сложных в поддержке скриптов
Ant, которые используются для сборки Вашего приложения? Какие есть альтернативы? Какими преимуществами и
недостатками обладают эти альтернативы? Как не набить шишек при переводе проекта с Ant на какой-нибудь Gradle?
</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/Xa_1cPfp8Vo" frameborder="0" allowfullscreen></iframe>
</div>
<!--<p class="presentation"><a href="presentations/jug1_scripts.pdf">Презентация</a></p>-->
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div style="margin-top: 35px; width: 100%" > </div>
<div class="row">
<article id="first">
<h4>Первая встреча JUG.EKB</h4>
</article>
<div style="font-size: 22px; color: #252525">
<p>Первая встреча JUG.EKB прошла 15 мая во Freelance Cafe (ТЦ Мытный Двор, ул. 8 Марта, 8Д)</p>
<b><p>Доклады:</p></b>
<div style="width: 100%">
<div class="avatar">
<img src="img/starowoyt.jpg">
</div>
<div class="text-div">
<p class="title">Практики тестирования кода</p>
<p class="author">Андрей Старовойт из JetBrains</p>
<p class="main-text">
Я расскажу про способы борьбы с ошибками прямо из IDE, минуя стадию запуска приложения.
</p>
<div style="margin-top: 35px" class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/y1v6mkLht0k" frameborder="0" allowfullscreen></iframe>
</div>
<p class="presentation"><a href="presentations/jug1_static_analysis.pdf">Слайды</a></p>
</div>
</div>
<div style="width: 100%; margin-top: 85px">
<div class="avatar">
<img src="img/tselovalnikov.jpg">
</div>
<div class="text-div">
<p class="title">Как не наступить на грабли, внедряя скрипты в java приложение</p>
<p class="author">Сергей Целовальников из Naumen</p>
<p class="main-text">Однажды вы решаете добавить динамики приложению и в вашем Java коде появляется Groovy, либо любой другой скриптовый язык. И Groovy приносит свою магию.<br/>
Сначала её мало, но затем её становится все больше и больше!
Вместе со скриптами появляется много вопросов - а если?, а как?, а почему?
А если я переименую этот класс? А как удобно писать скрипты? А почему скрипты сломались? И т.д.<br/>
Я расскажу как сделать так, чтобы написание скриптов приносило радость, их поддержка не была болью, а Groovy стал вашим лучшим другом!</p>
<div class="video">
<iframe width="100%" height="380" src="http://www.youtube.com/embed/ShjuZLumSJ0" frameborder="0" allowfullscreen></iframe>
</div>
<p class="presentation"><a href="presentations/jug1_scripts.pdf">Слайды</a></p>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<!-- footer -->
<footer class="navbar-fixed-bottom our-footer">
<div class="container clearfix">
<ul class="list-social pull-right">
<li><a class="icon-2" href="https://vk.com/jugekb"></a></li>
<li><a class="icon-3" href="https://twitter.com/jugekb"></a></li>
</ul>
<div class="privacy pull-left" style="color: #ffffff">© 2014-2016 | JUG.EKB
</div>
</div>
</footer>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-50423767-1', 'jugekb.ru');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
</body>
</html>