
Grigory
19.05.2018
08:37:02
Вы чо как котленисты ребят
Рибят это не понв.
читайте правила
@algerrnon забаню

Google

Aleksei
19.05.2018
19:27:56
а потом я забаню

Блаженный
20.05.2018
19:03:17
Этого кикайте. Я б вообще запретил таким людям по чатам ходить.
https://t.me/scala_ponv

Del
20.05.2018
19:03:48
Хехе, и тебе привет!

Блаженный
20.05.2018
19:03:54

Aleksei
20.05.2018
19:26:24
Ну у него котик на аве, так шо сорьки, но пока нет

Блаженный
20.05.2018
19:32:50
/toxic

П
21.05.2018
12:15:29
for(
f1 <- task1.fork;
f2 <- task2.fork;
f3 <- task3.fork;
_ <- f1.join;
_ <- f2.join;
_ <- f3.join
) yield ()
Как более кратко выразить такую конструкцию в мониксе?
Особенно в случае когда тасков не три, а десять

Alex
21.05.2018
12:19:24
parMapN ?
а не, это в кац-эффекте

Oleg
21.05.2018
12:20:52
В мониксе это Task.parMap3

Google

Oleg
21.05.2018
12:21:10
но можно и parMapN

Alex
21.05.2018
12:21:19
а raceMany не то?

Oleg
21.05.2018
12:21:19
у моникса есть инстансы
так у него же джойны там

Alex
21.05.2018
12:21:40
а

Oleg
21.05.2018
12:21:46
т.е. он ждёт всех результатов, просто запускает параллельно
т.е. это скорее gatherUnordered если на коллекции обобщать

Alex
21.05.2018
12:23:09
ага

П
21.05.2018
12:28:15
Спасибо

Alex
21.05.2018
12:53:24
а кто нибудь пользовал semantic API из скаламеты?
а то у них в доках как то вскользь написано, мол у нас тут всё экспериментально и вообще понарошку

Юрий
21.05.2018
13:14:25
Можно на скалафикс посмотреть, он на нем основан

Diemust
21.05.2018
13:26:44
кто-нибудь пользовался http4s для вебсокетов? проблема возникла, что если использовать вариант из примера
case GET -> Root / "wsecho" =>
val queue = async.unboundedQueue[F, WebSocketFrame]
val echoReply: Pipe[F, WebSocketFrame, WebSocketFrame] = _.collect {
case Text(msg, _) => Text("You sent the server: " + msg)
case _ => Text("Something new")
}
queue.flatMap { q =>
val d = q.dequeue.through(echoReply)
val e = q.enqueue
WebSocketBuilder[F].build(d, e)
}
при этом создавать в echoReply другие стримы, то вероятно сервер будет ждать, пока стрим закончится и не обрабатывать другие входящие сообщения.
Думал использовать другую структуру вместо очереди, но чет не нашел ничего подходящего.
В общем как сделать вебсокеты в http4s более асинхронными?


Mikhail
21.05.2018
13:27:15
а кто нибудь пользовал semantic API из скаламеты?
Да. Но там по сути нечем пользоваться. Загружаешь дб и дальше у тебя просто коллекция деревьев scala.meta.Tree (сгруппированная по файлам)(вроде там есть интерфейс где это дело просто все в кучу проитерировать можно, если не принципиально в каком файле - но мне по файлам надо было) - в остальном работаешь как обычно в скаламете - квазикоты и т.д.

Diemust
21.05.2018
13:51:01
вопрос даже проще, как в fs2 сделать аналог Subject в реактивщине или мониксе. Типа мне надо передать стрим, который будет принимать сообщения и стрим, который будет отдавать сообщения и это один стрим должен быть

Max
21.05.2018
14:38:33
гайз как заставить circe при десереализации брать значения по дефолту если они не установлены
использую import io.circe.generic.extras.semiauto.
если использовать как описано тут https://github.com/circe/circe/releases/tag/v0.6.0-RC1
то could not find Lazy implicit value of type io.circe.generic.extras.decoding.ConfiguredDecoder
https://scastie.scala-lang.org/cF5diyDTTZmWhVyRew58OQ
как ему подсунуть правильно Configuration

Nikolay
21.05.2018
14:40:53
Configuration.default.withDefaults должен быть в имплисит скоупе, когда объявляешь декодеры. и импорт import io.circe.generic.extras.semiauto, да
в принципе все так как в доке написано и есть

Max
21.05.2018
14:42:52
да так и есть(

Google

Nikolay
21.05.2018
14:43:04
а, ща посмотрю scastie
попробуй убрать import io.circe.generic.extras.defaults._

Max
21.05.2018
14:46:19
мде( да - спасибо!!

Alexander
21.05.2018
14:46:46
circe 0.6.0-RC1 было в 2016 же

Nikolay
21.05.2018
14:47:17
import io.circe._
import io.circe.syntax._
import io.circe.generic.extras.{Configuration, ConfiguredJsonCodec}
import io.circe.generic.extras.semiauto._
case class Ent(
id: Int,
myNewField: Seq[String] = List("ololo")
)
object Device {
implicit val customConfig: Configuration = Configuration.default.withDefaults
implicit val EntDecoder: Decoder[Ent] = deriveDecoder
implicit val EntEncoder: Encoder[Ent] = deriveEncoder
}
import Device._
println(Json.obj("id" -> 2.asJson).as[Ent])
вот так работает

Max
21.05.2018
14:47:41

Nikolay
21.05.2018
14:48:02

Max
21.05.2018
14:48:59
потому что в changelog как бы и так и так надо написать, а в доку надо еще раз это же писать))

Admin
ERROR: S client not available

The
21.05.2018
14:53:46
ребятки, привет. в скалу можно вкатиться, минуя джаву?

Oleksandr
21.05.2018
14:54:05
нужно

Dmitriy
21.05.2018
14:54:12

Nikolay
21.05.2018
14:54:18

Dmitriy
21.05.2018
14:54:24
Cоветую через LYAHGG

The
21.05.2018
14:55:47
можете тогда подсказать, с чего начать? был опыт: PHP, Golang, JS.
LYAHGG это оно: https://github.com/ssanj/LYAHGG-Study-Notes ?

OlegYch
21.05.2018
14:57:23
lyah и для хачкеля не советуют
не то что для скалы

Google

OlegYch
21.05.2018
14:58:04
можно начать отсюда http://tpolecat.github.io/2014/12/12/getting-started.html

Dmitriy
21.05.2018
14:58:33

Р
21.05.2018
15:15:19
Я обычно советую Twitter Scala School (немного устарела) и https://www.scala-exercises.org.
Ну и Coursera, конечно, но она не очень практичная.

Bulat
21.05.2018
15:16:50
скала для нетерпеливых еще есть

Aleksei
21.05.2018
15:17:11
для нетерпеливых только го )
/toxic

Nikolay
21.05.2018
15:17:56
@scala_ponv для нетерпеливых

Юрий
21.05.2018
15:18:32

Wystan
21.05.2018
15:18:39

Р
21.05.2018
15:19:56
А что значит /toxic?

Henadz
21.05.2018
15:20:08

Grigory
21.05.2018
15:20:22

Bulat
21.05.2018
15:20:55
А Essential Scala? Вроде бы, от авторов котов.
хз, может и норм. там в требованиях Prerequisites
To benefit from this course you should have at least one or two years’ experience with an object-oriented (e.g. Java, C#) or functional (e.g. Haskell, Lisp) programming language.
Если есть такой опыт, то ок, наверное