
Руслан
08.12.2016
15:21:08
Да я про свою джаву 8)

Vlad
08.12.2016
15:23:04
не надо тут на джаву 8 гнать

Руслан
08.12.2016
15:23:17
А так я решил пока судьба не заставит, это не трогать - я не буду) Глядишь стабилизируется через годик) 2.3.0 уже версия так-то)

Google

Руслан
08.12.2016
15:23:47

Pavel ?
08.12.2016
15:28:22
ребята кто подскажет куда саппорту в контакт писать?

Kirill
08.12.2016
15:31:54

Руслан
08.12.2016
15:32:25
И какими соплями мне его прибить к стримам? (уже StreamEx есть btw)
val handlerWrappers = listOf<HandlerWrapper>(...)
var root: HttpHandler = Handlers.routing()
root = handlerWrappers.fold(root, {handler, wrapper -> wrapper.wrap(handler)})
ну вот почему я не могу так написать в джаве :(

Kirill
08.12.2016
15:33:36
almost scala!

J
08.12.2016
15:38:51
это норма, но то, что ты хочешь, называется provided скоуп зависимостей, т.е. необходимые библиотечные джарки должны быть подлиты на сервер
кароче расковырял сервак: там матрёшка, на серваке стоит жава 1.7 и нет галсфиша, зато если из сервлета сканить файловую систему и печатать в лог, то выйсняется, что все события происходят на какой-то призрачной машине с 8 жавой и гласфишем
дальше в логах видно, что гласфиш грузит какие-то бандлы со старыми версиями жарников, и они валят noSuchMethod

Руслан
08.12.2016
15:42:16
t = list.reduce(t, (x,y) -> x.r(y))
А с учетом final/effective final я даже не могу в forEach это удобно сделать... Вот вам и сахар.

Митко Соловец?
08.12.2016
15:47:28

Kirill
08.12.2016
15:47:52

Google

Руслан
08.12.2016
15:48:54
так иммутабельность жи!хорошо жи!
Так если бы имутабельность. У меня есть в скоупе foo, которую я не могу изменить, теперь я кладу в скоуп bar, а в bar кладу foo. И вуаля, я из лямбды меняю стейт

Kirill
08.12.2016
15:52:18
Ну так и что тебе всё-таки мешает сделать просто map, и если уж так хочется, то переложить результат в исходную переменную(список изначальных аргументов типа Т)? результат получишь тот, что хочешь-список с преобразованными элементами, та же переменная(имя то же, по крайней мере)
а вообще, то что ты говоришь противоречит тому, как должны работать операции foreach/map - без сайд эффектов, поэтому так сделать и нельзя

Руслан
08.12.2016
15:53:38

Kirill
08.12.2016
15:55:02

Руслан
08.12.2016
15:55:34

Kirill
08.12.2016
15:56:00
ох, опасную игру ты ведешь...мы за чистоту функций!

Pavel ?
08.12.2016
15:56:50
чем чище функция тем сильнее сходит с ума янг)))

Yan?
08.12.2016
15:57:36
http://www.yegor256.com/2016/12/06/how-to-pay-programmers-less.html

Руслан
08.12.2016
15:57:40
fun wrap(handler: HttpHandler, wrappers: List<HandlerWrapper>): HttpHandler {
var root = handler
wrappers.forEach { root = it.wrap(root) } // 1
root = wrappers.fold(root, { handler, wrapper -> wrapper.wrap(handler) }) //2
return root
}
Вот пример

Kirill
08.12.2016
16:01:45
Блин, с телефона не очень удобно читать, но я понял, что ты хочешь сделать обычный fold

Руслан
08.12.2016
16:01:48
в варианте 1 у меня замыкание, а во втором - чисто, модно
Да! В том то и дело, самый, блин, обычный фолд)
Но при этом менее функциональный вариант проще как мне кажется
К моему набору CheckedFunction, CheckedSuplier, ... нужно добавить Wrapper, чтобы вот так на джаве писать:
wrappers.forEach { root = it.wrap(root) }

Kirill
08.12.2016
16:06:31
А была бы скала, забабахал бы свой имплисит класс...
или просто взял fold :D

Руслан
08.12.2016
16:07:38
Шанс что разрешат писать либы под джаву на котлине выше, чем что разрешать писать на скале)

Google

Руслан
08.12.2016
16:07:49
В моих реалиях

Kirill
08.12.2016
16:09:35
А какие системы сборки уже могут нормально с котлином работать?
про gradle думаю надо спрашивать @JBaruch

Руслан
08.12.2016
16:10:27
Да я тебе и так скажу - все
Кроме sbt
lein
и т.д.
Gradle, Maven, Kobalt, Ant
Конкретно я с Gradle юзаю как правило

Kirill
08.12.2016
16:11:02
Ну меня больше грэдл интересует, тоже apply plugin и погнали?

Руслан
08.12.2016
16:11:18
Ну buildscript + apply plugin
или если Gradle Kotlin Script (Gradle на Kotlin)
просто в одну строчку: kotlinModule()

Kirill
08.12.2016
16:12:51
и полиглот мавен есть?

Руслан
08.12.2016
16:12:53
Хотя не так, там все равно buildscript остался
Gradle:
http://kotlinlang.org/docs/reference/using-gradle.html
Gradle-Kotlin:
https://github.com/gradle/gradle-script-kotlin/blob/master/samples/hello-kotlin/build.gradle.kts#L8
Maven:
http://kotlinlang.org/docs/reference/using-maven.html
Не знаю про полиглот

Kirill
08.12.2016
16:14:38
эвона как ребята его проталкивают везде, неплохо

Руслан
08.12.2016
16:14:41
Ты просто пишешь на котлине и джаве хоть в одном пакете
Wrapper<HttpHandler> rootWrapped = Wrapper.of(root);
handlerWrappers.forEach(wrapper -> rootWrapped.value = wrapper.wrap(rootWrapped.value));
заменяем фолд на костыли и велосипеды
(ну я это в шутку написал конечно)

Pavel ?
08.12.2016
16:35:57

Google

Руслан
08.12.2016
16:36:35
Для себя на 1.1. В проектах последнюю стабильную как правило.

Pavel ?
08.12.2016
16:38:18
#ияиятогожемнения

Maksim
08.12.2016
17:28:10

Andrey
08.12.2016
17:28:58
А кто разрабатывает веб-приложения с использованием Spring MVC, можете подсказать, как на jsp странице по нажатию кнопки перегрузить только определенную табличку, без обновления всей страницы?
Делаю вызов метода load (jQuery), но вся страница очищается, остается только заголовок...

Руслан
08.12.2016
17:29:34

Maksim
08.12.2016
17:30:33

Admin
ERROR: S client not available

Maksim
08.12.2016
17:31:21
Можно было ведь просто extension методы запилить и обворачивать итераторами.

Руслан
08.12.2016
17:31:37
Тагир хорошо рассказывает про стримы, он наверно лучше всех знает где у них подводные камни)

Pavel ?
08.12.2016
17:35:21
нужно расширять байткод в сторону мнемоник над обертками)
тогда примитивы будут ненужны)

Maksim
08.12.2016
17:37:20
jsp к этому никакого отношения не имеет.

Anton
08.12.2016
17:41:04
дефолтные методы добавили в язык как решение эволюции интерфейсов, в частности коллекций

Руслан
08.12.2016
17:41:48
Логическая цепочка к тому, что из-за примитивов у нас сейчас куча классов и интерфейсов

Anton
08.12.2016
17:42:01
does not compute
дефолтные методы и примитивы. где то звено разорвалось

Google

Andrey
08.12.2016
17:42:50
я вызываю $("#request-info").load(baseURL + "/request-info");
где request-info это ид контейнера таблицы
<div class="tab-pane tab-page" id="request-info">
в контроллере сделал метод для "/request-info", который возвращает строку с адресом страницы, которая содержит только таблицу

Руслан
08.12.2016
17:44:22
дефлотные методы отдельно / примитивы отдельно

Anton
08.12.2016
17:45:26
вот так лучше :)

Baruch
08.12.2016
17:54:07

Руслан
08.12.2016
17:56:45
Я про другое, например я хочу запустить сначала миграцию, а потом уже стартовать сервис:
java -jar artifactory.jar —miragration —config=config.yml
// then
java -jar artifactory.jar —server —config=config.yml (or —config=https://company.com/config)
http://i2.kym-cdn.com/photos/images/original/000/107/432/i_hug_that_feel.png

Baruch
08.12.2016
17:58:55

Руслан
08.12.2016
17:59:22

Baruch
08.12.2016
17:59:40

Руслан
08.12.2016
17:59:44
тот же concourse.ci
Чтобы не ставить на хост систему ничего

Baruch
08.12.2016
18:00:03

Руслан
08.12.2016
18:00:30
mvnw
например, но не везде такие штуки есть