
Alexander
16.02.2017
11:38:40
Чо, никто Скала биндинги для тензорфлоу писать не задумал?

Grigory
16.02.2017
11:39:41
скала враппер вокруг джава биндингов?

Alexander
16.02.2017
11:43:09
Ага, чтобы всё на монадах и реактивное.

Oleg
16.02.2017
11:51:35

Google

Oleksandr
16.02.2017
11:54:10

Oleg
16.02.2017
11:54:24

Oleksandr
16.02.2017
11:56:22
не пробовал, правда

Oleg
16.02.2017
11:57:41
Вообще можно написать нормик на scala-native
Чтобы был чайниковый как theano

Daniel
16.02.2017
11:58:59
scala-native уже настолько готов, что можно под него готовые решения писать?

Oleksandr
16.02.2017
11:59:58
ml не та область, где нужна типизация и все такое

Oleg
16.02.2017
12:00:17

Alexander
16.02.2017
12:01:29
А зачем Scala native если есть Раст?

Oleg
16.02.2017
12:01:36

Anton
16.02.2017
12:03:00

Google

Oleg
16.02.2017
12:03:17

Nikolay
16.02.2017
13:35:39
https://groups.google.com/forum/m/#!topic/play-framework/imf51EsYU08
кто-нибудь знает причину перехода на akka http? как-то не следил за этим

Oleg
16.02.2017
13:38:24
Основная причина: это домашний проект Lightbend
Побочная причина: play-iteratees такие сложные и медленные, давайте перейдём на akka-stream.
Ой на стримах ещё медленнее, потому что всё так ништяково было заточено под Netty..., давайте перейдём на akka-http

Nikolay
16.02.2017
13:40:47

Oleg
16.02.2017
13:43:12
Полуосновная причина: в апи, заточенном под play-iteratees, java-кодеру делать нечего. А продавать свой лагом-стек как-то надо

Nikolay
16.02.2017
13:54:23
кто-нибудь сталкивался с задачей построения по akka-http роутам их описания, но чтобы без кучи аннотаций, как в swagger-akka-http?

Oleg
16.02.2017
13:58:06

Nikolay
16.02.2017
13:58:29
и она решается?

Oleg
16.02.2017
13:58:38
да

Nikolay
16.02.2017
13:58:53
в каком направлении стоит копать?

Oleg
16.02.2017
14:02:27
в каком направлении стоит копать?
Есть два подхода. Мой коллега занимается клонированием routes\directives, так, чтобы они говорили о результирующем типе.
Я строю type-level DSL a la Servant (Haskell).
Раньше было стрёмновато, потому что Servant был стрёмноватый, но теперь всё делается через Witnessы через специальные конструкции, по которым даже не скажешь сходу, что они оперируют типом
Одна толстая часть библиотеки проходится по типам и собирает Route
И прицепляет к импрементациям
Вторая собирает некую структуру, которая отдается как swagger.json
Мой подход норм работает, уже потестил, понагружал

Nikolay
16.02.2017
14:05:35
> Я строю type-level DSL a la Servant (Haskell).
описание роутов что-то типа HList-ы из которых можно собрать описание?

Oleg
16.02.2017
14:06:50

Google

Oleksandr
16.02.2017
14:06:59
https://groups.google.com/forum/#!topic/scala-user/iI4u3Xqs5K0
обсуждали уже?

Alexey
16.02.2017
14:08:54
Oleg чем финч не ок? NIH?

Nikolay
16.02.2017
14:08:56

Oleg
16.02.2017
14:09:36
А этот finch swagger собирает?
я так вижу Open
https://github.com/finagle/finch/issues/73
так что нерелевантно

Nikolay
16.02.2017
14:11:30
> Мой коллега занимается клонированием routes\directives
а это что за подход? где-то можно взглянуть?

Oleg
16.02.2017
14:12:19

Nikolay
16.02.2017
14:12:59
а в кратце? имеется в виду что это форк akka-http dsl?

Oleg
16.02.2017
14:15:04
Т.е. туда можно воткнуть обычную директиву, если она никак не влияет на мета-информацию

Oleg
16.02.2017
14:16:08
Либо "помеченную", если она что-то добавляет
Третий вариант, конкретно для akka-http - это на базе конкретно akka-streams
Т.е. придумать свои stage для каждой компоненты пути, содержащие мета-инфу
В потом в сервер передавать просто Flow[HttpRequrst, HttpResponse, NotUsed]
А для сваггера обходить тот же граф и добывать мета-инфу
Мы его поверхностно обсуждали, но не брались реализовывать

Nikolay
16.02.2017
14:21:04
спасибо, нужно будет попробовать

Google

Oleg
16.02.2017
14:21:47
звучит интересно
Ну минус тот же, что и у akka-http. Реализация жёстко привязана к определению сервиса
У меня можно на вход подать trait, макрос его разрежет на куски, подберёт по именам параметры, проверит, что типы подходят, и подаст следующему этапу, который будет искать ToResponseMarshallable для возвращаемых типов

Vasily
16.02.2017
14:23:31
Первый подходящий подберет?

Oleg
16.02.2017
14:23:52

Vadim
16.02.2017
14:24:03
Oleg последний коммент в ишью
Something amazing happened! https://twitter.com/wing328/status/825564638393704448
It's now possible to generate Finch server stubs out of Swagger API definitions. Amazing work by @jimschubert and @wing328!
а тебе же обратное действие надо

Admin
ERROR: S client not available

Vadim
16.02.2017
14:25:16
не то

Oleg
16.02.2017
14:25:16

Vasily
16.02.2017
14:26:41

Oleg
16.02.2017
14:27:40
дефолтные роуты - это что? 404?
Смотри, в результате ты всё склеиваешь и получаешь Route, с которым потом делаешь, что хочешь
Просто на основании того же типа ты можешь получить не только Route а ещё и Swagger

Vasily
16.02.2017
14:31:12
Дефолтный - это если тебе лень для пачки однотипных контроллеров прописывать правила, и ты пишешь типа одно правило, которое автоматом мапит роуты типа controller/action/id

Nikolay
16.02.2017
14:35:36

Alexey
16.02.2017
14:36:23
я не знаю. просто из того примера что был сначала показан был виден просто composable http dsl.

Vadim
16.02.2017
14:37:05
ну типы там есть. но стороковые не тэгируют - так что в таком виде не получится
хотя если по-плохому - всегда можно поднять и в рантайме нагенерить

Diemust
16.02.2017
14:51:31
а можно ли сделать case object из инстанциированного case class'a, типа этого неправильного кода, из которого понятно примерно, что я хочу
case object EmptyStat extends Stat(false, false)

Google

Oleksandr
16.02.2017
14:52:18
а зачем именно object?
val EmptyStat = ...

Oleg
16.02.2017
14:52:44
кто-нибудь сталкивался с задачей построения по akka-http роутам их описания, но чтобы без кучи аннотаций, как в swagger-akka-http?

Diemust
16.02.2017
14:53:23

Aleksey
16.02.2017
14:53:42

Oleksandr
16.02.2017
14:54:27

Aleksey
16.02.2017
14:54:39
Буде ошибка что-то там кейс-ту-кейс инхеританс нот эвэйлэбл.
Если просто object, без case то вроде можно

Oleg
16.02.2017
14:55:45

Diemust
16.02.2017
14:59:03
в этом варианте, как я понимаю, EmptyStat незаматчится, если мы пошлем StatusOf(false, false)
да в целом и пофиг

folex
16.02.2017
15:00:14
@diemust можно просто object с unapply попробовать
и там сравнивать по полям, тогда сматчится

Vadim
16.02.2017
15:01:19
или 4 конкретные реализации под abstract class Stat

Oleg
16.02.2017
15:01:21

Diemust
16.02.2017
15:02:05
ладно, проще val заюзать