@scala_ru

Страница 587 из 1499
Nick
31.03.2017
20:13:28
но эт не отменяет факта, что эт обычный Object

Oleksandr
31.03.2017
20:13:46
тогда почему "val a: Int = Int" не работает?

я-то знал (сейчас вспоминаю) фокус с дописыванием () откуда-то, но вот забыл

Nick
31.03.2017
20:22:00
потому что правильно писать так val a:Int.type = Int ))

Google
Oleksandr
31.03.2017
20:25:07
ну да, но "val a: Unit = Unit" компилится как и "val a: Unit.type = Unit", но тут по совсем другим причинам

Roman
31.03.2017
20:51:31
А казалось бы обычный вопрос со второй главы книги для новичков

Nick
31.03.2017
21:04:30
ну внутренности компилятора не совсем для новичков)

Aleksey
01.04.2017
04:53:46
http://scala-lang.org/blog/2017/04/01/announcing-skala.html давно пора

Mikhail
01.04.2017
05:13:06
тонкий скала юмор)

в соседних чатах модно каналы переименовывать) pro.cxx -> pro.java и т.д.)

может в котлин переименуемся?

Oleg
01.04.2017
05:46:17
go более насущно

если в котлин переименоваться, никто разницы не поймёт всё равно

Daniel
01.04.2017
05:56:31
go более насущно
баян, раст уже переименовался

Oleg
01.04.2017
06:02:56
Daniel
01.04.2017
06:03:24
вот тут точно никто разницы не поймет

KrivdaTheTriewe
01.04.2017
06:49:34
pro.cats

Google
Kirill
01.04.2017
07:31:01
ребят, вопрос по Circe: возможно ли как-то полуавтоматически вывести кодеки для non-sealed trait?

хотя бы указав все наследующие классы руками

примерно как сделавно в Boopickle https://boopickle.suzaku.io/ClassHierarchies.html

implicit val fruitPickler = compositePickler[Fruit]. addConcreteType[Banana]. addConcreteType[Kiwi]. addConcreteType[Carambola]

Nikolay
01.04.2017
07:57:52
только encoder-ы? или decoder-ы тоже?

Kirill
01.04.2017
07:59:32
да, вместе с decoder'ами

Nikolay
01.04.2017
08:02:40
в случае с encoding-ом самый тупой вариант - паттерн матчинг, когда для каждого наследника уже есть encoder. implicit val encodeThings: Encoder[Thing] = Encoder.instance { case aThing: AThing => aThing.asJson case bThing: BThing => bThing.asJson ... }

то есть это предполагает что encoder-ы для AThing и BThing уже где-то есть - скажем выведены автоматически/полуавтоматически

в случае с декодерами - есть какое-то поле, с помощью которого можно понять, что именно такое это?

Kirill
01.04.2017
08:05:18
Нет, базовый трейт не содержит полей

Но я мысль понял, нужно уметь кодировать тип наследника в трейте самому, чтобы иметь возможность построить декодер

Судя по документации встроенной поддержки такого кейса нет

Nikolay
01.04.2017
08:09:03
по декодерам - http://stackoverflow.com/questions/42165460/how-to-decode-an-adt-with-circe-without-disambiguating-objects/42165461#42165461 вот может помочь

тут по сути перечисляешь все декодеры в нужном тебе порядке, и он будет пробовать по очереди декодировать

Kirill
01.04.2017
08:12:55
Да, то что нужно, спасибо!

Nikolay
01.04.2017
09:32:33
https://twitter.com/shipilev/status/848098362054365184

Sergey
01.04.2017
10:02:09
DevOps в Слесари сантехники, прочистка труб

Mikhail
01.04.2017
12:11:15
http://www.pvsm.ru/images/2016/09/06/daidjest-interesnyh-sobytii-iz-mira-Java-i-vokrug-nee-8-01-08-2016-31-08-2016-4.jpg

Aleksey
01.04.2017
12:12:45
pro.cats
pro.korolev

В 22.30 по мск онлайн-трансляция DevZen подкаста. Там иногда бывает про скалу https://gitter.im/DevZenRu/live

Google
Dmitriy
02.04.2017
07:25:01
Всем привет. Не могу понять что происходит. Есть старый проект на плее 2.10. При запуске без проблем открывается и на localhost и на 127.0.0.1

А новый проект play-scala-seed не открывается на 127.0.0.1

В чем магия?

Только localhost

Daniel
02.04.2017
07:27:10
alias на localhost проверь

в системе

Dmitriy
02.04.2017
07:31:35
Файл hosts проверить?

Daniel
02.04.2017
07:31:45
да

Dmitriy
02.04.2017
07:31:55
Там всё норм

Говорю же. Старый проект нормально открывается и там и там когда запускаю

А новый почему то нет, может дело в настройках play?

Кароч такая штука

Dmitriy
02.04.2017
07:33:26


Daniel
02.04.2017
07:36:12
весь гугл тыкает на mysql это не ошибка с базы у тебя прилетела?

Dmitriy
02.04.2017
07:37:10
Абсолютно чистый и пустой проект

sbt new playframework/play-scala-seed.g8

Vladimir
02.04.2017
07:40:02
Между делом не https пытаешься открыть?

Dmitriy
02.04.2017
07:40:24
ytn

нет

Daniel
02.04.2017
07:42:43
логи и сорцы ковырять надо если у тебя локалхост прописан 127.0.0.1, то хост отрезолвится должен нормально (а не IPv6 например) в этом случае сомневаюсь, что дело именно с интерфейсом где приложение подымается

Google
Dmitriy
02.04.2017
07:43:57






Diemust
02.04.2017
07:44:56
попробуй еще со слешом и без, мож в слеше проблема

Darkhan
02.04.2017
07:45:22
В конфиге возможно play.filters.hosts { # Allow requests to example.com, its subdomains, and localhost:9000. allowed = [".example.com", "localhost:9000", "127.0.0.1"] }

Если используется фильтр

Roman
02.04.2017
07:47:09
Посмотри 'telnet localhost 9000'

Admin
ERROR: S client not available

Daniel
02.04.2017
07:47:38
Посмотри 'telnet localhost 9000'
так и так норм, запрос дошел до сервака

ради фана попробуй сделать запрос руками (Jmeter, fiddler или еще что-то) и попробовать заголовок host поменять

только два места где сервак может получить исходную строку домена - в самом запросе (но это опционально) и заголовок хост

Darkhan
02.04.2017
07:49:40
Так как ошибка из плэя, то с хостами ковыряться не надо. Запрос он видит, но не пропускает. Проблема на стороне плэя.

Dmitriy
02.04.2017
07:50:24
+

Спасибо. Да, дело было в фильтрах

Daniel
02.04.2017
07:51:38
сомнительная фича =/

Dmitriy
02.04.2017
07:59:28


И я так понимаю эти ошибки в браузере тоже из-за фильтров. Потому что когда их убираешь, то всё норм. Может кто-нибудь объяснить или дать ссылку на объяснение как это понять и что он вообще от меня требует?

А то офишиал доки чет мне сейчас ответа не дали

Denis
02.04.2017
08:07:06
Это типа CORS

Dmitriy
02.04.2017
08:19:02


Google
Dmitriy
02.04.2017
08:19:04
Из того, что я понял. Эта content-security-policy толком не поддерживается в браузерах, так что я думаю можно забить

Учитывая что проектик домашний

А вообще было бы интересно послушать у кого был опыт работы с этим, а то я ваще в этом не шарю

Darkhan
02.04.2017
10:59:53
Это можно исправить тоже через конфиг play.filters.headers.contentSecurityPolicy. Думаю включать его полезно, так как он предотвращает некоторые виды атак в поддерживаемых браузерах. Как настроить поля нормально расписано на https://content-security-policy.com/

Alexander
02.04.2017
15:07:00
скалисты, быстровопрос, какой фрейм юзать для посроения rest api: play, spray или что-то другое?

Nikita
02.04.2017
15:09:19
ну спрейто уже депрекейтед

Alexander
02.04.2017
15:09:31
akka http
спасибо:)

Nikita
02.04.2017
15:09:40
бери плей/akka-http

с плеем будет проще

Denis
02.04.2017
15:10:23
с плеем будет проще
зато потом будет сложно, когда захочет сложно

Nikita
02.04.2017
15:10:26
ну а если нужно просто rest-endpoint прикуртить, то акка хорошая

зато потом будет сложно, когда захочет сложно
ну вот исходя из моего опыта на акке придется больше бойлерплейта писать если нужно с браузерами общаться

как service2service апи - акка хороша

но как тольно всякий cors и фильтры и прочее прикручивать, то начинается бойлерплейт

Alexey
02.04.2017
15:20:10
роуты нормально переисползуются

Vyatcheslav
02.04.2017
15:23:58
Один из примеров того, как прекрасен Play: https://www.playframework.com/documentation/2.5.x/ScalaActionsComposition (спойлер - на самом деле нет), и такого добра там хватает. Ко всему прочему это огромный фреймворк, который ограничивает тебя в выборе инструментов. Имхо - Play точно не стоит брать, если пишешь REST API. А если обычный сайтик - то пожалуйста.

Страница 587 из 1499