
Nikolay
27.11.2016
18:05:27
compile in Compile := {
(run in (subproject, Compile)).toTask("").value
(compile in Compile).value
}
вот так вот вроде бы завелось

Vadim
27.11.2016
18:07:00
там какая-то магия с объявлением - run in (subproject, Compile) - я вот такую запись случано выгуглил и тоже после этого завелось

Nikolay
27.11.2016
18:08:27
в смысле что in (subproject, Compile) вместо in subproject in Compile?

Vadim
27.11.2016
18:09:01
угу

Google

Daniel
27.11.2016
18:35:12

Юрий
28.11.2016
00:30:16

Denis
28.11.2016
07:32:59
Выложили видео со SBTB https://m.youtube.com/channel/UCKvhw2CPR-0S4XZ1bNlihnw

Andrey
28.11.2016
07:40:36
что-то у них с плейлистами не то на канале

Aleksei
28.11.2016
07:42:38
лол это просто тебе рилейтед на основе твоей истории просмотров подсунули

Bulbu
28.11.2016
09:21:22
всем привет, кто-нибудь писал что-то на coap протоколе под jvm?

Alexey
28.11.2016
09:35:44
Боже упаси
писал ((

Igor
28.11.2016
09:38:45
я всегда темплейтами протокол общения оформлял) чем мучится со структурами соапа

Bulbu
28.11.2016
09:42:31
прожу заметить, не soap, а CoAP

Alexey
28.11.2016
09:45:31
Spring WS в помощь
а епрпст

Denis
28.11.2016
10:25:04

Google

Denis
28.11.2016
10:25:16

Mikhail
28.11.2016
10:52:55
http://coap.technology/
кто-нибудь использовал непосредственно скалу для конфигов, вместо всяких hocon ?

Юрий
28.11.2016
11:07:33
а зачем?

Mikhail
28.11.2016
11:08:00
compile time checking

Nikolay
28.11.2016
11:08:07
https://www.youtube.com/watch?v=kfs-dtbG0kY

Mikhail
28.11.2016
11:08:38
+ не требуется писать постоянно config.getString()

Lev
28.11.2016
11:08:45
ага, у них прямо eval есть для конфигов ?

Nikolay
28.11.2016
11:08:45
в этом видео вроде бы говорилось

Lev
28.11.2016
11:08:49
красота

Mikhail
28.11.2016
11:09:20
просто я недавно начал использовать и вот пока размышляю попутно - есть ли какие подводные камни. пока не наткнулся)

Nikolay
28.11.2016
11:09:23
красота
я слышу нотки сарказма, или показалось?

Юрий
28.11.2016
11:09:45
а как разные конфиги подкладывать?

Nikolay
28.11.2016
11:09:48
в смысле без пересборки всего
не в рантайме

Mikhail
28.11.2016
11:10:08

Lev
28.11.2016
11:10:30

Nikolay
28.11.2016
11:10:30
окей, что делать с секретами?

Google

Mikhail
28.11.2016
11:10:34

Юрий
28.11.2016
11:10:45
ну вот чем хорош typesafe config. Ты один раз собрал прилоджение, а потом ему можешь разные конфиги подкладывать
а тут как?

Mikhail
28.11.2016
11:11:18
а тут как?
точно также. вместо разных файлов - разные обжекты и вперед
ключи чтобы в репу не попали?

Nikolay
28.11.2016
11:11:42
да

Mikhail
28.11.2016
11:11:46
вынести можно отдельно

Юрий
28.11.2016
11:11:49

Nikolay
28.11.2016
11:12:03
хм, вообще можно отдельно подкладывать в classpath одну jar-ку со всеми конфигами
просто в скрипте запуска прописывать

Mikhail
28.11.2016
11:12:24

Nikolay
28.11.2016
11:12:30
тогда нужно будет только одну jar-ку пересобирать

Mikhail
28.11.2016
11:13:08
ага. либо хот релоад для отдельной джарки - тоже не трудно, если время старта большое и надо прям наживую
зато после избавления от getString, getInt со стринговыми ключами с которыми еще и в самом конфиге можно ошибиться - прям радостно и кошерненько становится)

Юрий
28.11.2016
11:16:13
ну хз хз. Оборачивать в жарку конфиги не видится мне удобным решением

Mikhail
28.11.2016
11:17:02
яве что отдельный файл в виде .conf, что отдельный джарник с парой классов внутри - разницы то нет. все равно автоматика все будет делать

Grigory
28.11.2016
11:17:37
а зачем пересобирать джарники ради конфига?
в джарнике дефолтный конфиг
продакшн конфиг передается через переменные

Google

Grigory
28.11.2016
11:19:01
абсолютно так же как и не надо пересобирать джарник ради какогото кастомного конфига логов
в джарнике дефолтный; в остальных случаях переменной передается

Daniel
28.11.2016
11:19:56
https://github.com/iheartradio/ficus?files=1

Admin
ERROR: S client not available

Mikhail
28.11.2016
11:21:16
так ведь там строковые ключи никуда не делись

Alex
28.11.2016
11:21:19
https://github.com/Verizon/knobs еще

Nikolay
28.11.2016
11:21:39
так они все равно не спасут от опечатки в реальном конфиге

Daniel
28.11.2016
11:22:10

Mikhail
28.11.2016
11:23:05
можно, но зачем? я пока не нашел ни одного пункта, в котором бы я потерял при использовании скалы как конфига, но зато нашел для себя пачку приобретенных удобств

Grigory
28.11.2016
11:23:16
и чтоже тогда придется ради изменения в конфиге пересобирать джарник?
что за удобство такое?)

Mikhail
28.11.2016
11:23:53
при изменении конфига - ты пересохраняешь конфиг. тут также - ты пересохраняешь конфиг (просто он в формате скалы). не надо всю либу для этого пересобирать

Daniel
28.11.2016
11:24:08
val internalConfig: TypeSafeConfig = ConfigFactory.load()

Nikolay
28.11.2016
11:24:25
Mikhail замути либу/sbt плагин для всего вот этого

Daniel
28.11.2016
11:24:26
ровно то же самое

Mikhail
28.11.2016
11:24:55
object MyProdConfig extends DefaultConfig with FallBackConfig

Nikolay
28.11.2016
11:25:47
!!!В РАНТАЙМЕ!!!

Google

Mikhail
28.11.2016
11:26:13

Daniel
28.11.2016
11:26:19
нет, не упадёт, если в fallback есть этот ключ

Grigory
28.11.2016
11:26:35
да и фишка в том что в рантайме конфиг сувать

Nikolay
28.11.2016
11:26:42
да, я про бойлерплейт для того чтобы этим было удобно пользоваться

KrivdaTheTriewe
28.11.2016
11:26:52
Case class + scopt

Grigory
28.11.2016
11:26:58
-Dconfig.file=prodconfig
все из коробки работает

KrivdaTheTriewe
28.11.2016
11:27:04
Вот это для конфигурации

Grigory
28.11.2016
11:27:05
что за велосипеды

Mikhail
28.11.2016
11:27:13
-Dconfig.class=my.prod.Config

Grigory
28.11.2016
11:27:31
hz в этом смысла немного

Mikhail
28.11.2016
11:27:32
тоже все из коробки и без зависимостей)

Grigory
28.11.2016
11:27:43
но ммм я понял

Mikhail
28.11.2016
11:27:50
и тайпсейф компайл тайм)
еще микро-либа нужна для какой-никакой стандартизации случаев Config.getConfig("some.path.to.config"). Наверное это можно порешать что-то вроде object Config { def register[T]( config: T#Config ) def get[T]:T#Config }
хотя вложенный тип можно и не использовать