
Pavel
02.06.2017
11:25:38
для plain sql слик пушка

Andrey
02.06.2017
11:28:32
Слик вообще недооценен из-за нытиков... которые при малейшей проблеме сразу начинают "сложнаааааааа"

Arthur
02.06.2017
11:29:07
Если либа заставляет ide лагать на топовом маке
То мне кажется либа делает что-то не так

Google

Oleksandr
02.06.2017
11:29:35
ну лично мне слик не нравится из-за высочайшей концентрации втфов в сорцах
(что, увы, применимо где-то к трети скала либ)

Pavel
02.06.2017
11:30:07
у меня не топовый мак, но не лагает)

folex
02.06.2017
11:30:27
у нас тут от scalajs идея дохнет до 8миядерных ноутах

Pavel
02.06.2017
11:30:27
вообще странно что либа заставляет иде лагать

folex
02.06.2017
11:30:29
так что...

Pavel
02.06.2017
11:30:33
проблема то наверное не в либе
а в иде

folex
02.06.2017
11:31:02
Угу. Вот перестанет лагать, и нельзя будет сказать "вот котлин не лагает, а скала лагает"

Arthur
02.06.2017
11:31:19
Весь этот резолвинг имплисит дерьма очень сильно нагружал идею

Pavel
02.06.2017
11:31:44
ну а компилятор компилит это все без проблем

Nikolay
02.06.2017
11:32:07

Arthur
02.06.2017
11:32:15
Ну круто, жаль что компилятор за меня квери не напишет

Google

folex
02.06.2017
11:42:44
А то идея, и недорогой десктоп как-то не вяжутся

Andry
02.06.2017
11:43:39
Так но почему-то запрос не возвращает значения?
class Adapters(tag: Tag) extends Table[(Long, String, String,String,String)] (tag, "ADAPTERS"){
def id = column[Long]("ID", O.PrimaryKey)
def uuId = column[String]("UUID")
def name = column[String]("NAME")
def adapterType = column[String]("ADAPTER_TYPE")
def listenerURL = column[String]("LISTENER_URL")
def * = (id, uuId, name, adapterType, listenerURL)
}
val adapters = TableQuery[Adapters]
db.run(adapters.result).map(_.foreach {
case (id, uuId, name, adapterType, listenerURL) =>
println(s"$id $uuId $name $adapterType $listenerURL")
})
Делаю так получаю это
defined class Adapters
adapters: slick.lifted.TableQuery[Adapters] = Rep(TableExpansion)
res0: scala.concurrent.Future[Unit] = List()
В табличке значения есть..


Nikolay
02.06.2017
11:50:42
оценил, уйдя с идеи всмысле?
нет. мощный макбук для комфортной работы стоит огого. десктоп на работе - 6-ядерный проц от AMD, 16 гигов оперативки и ssd-ха. и с такой конфигурацией работа в идее с скалой комфортная

folex
02.06.2017
11:51:09
а

Grigory
02.06.2017
11:51:27

Aleksei
02.06.2017
11:51:55
амд всегда печаль да =(

Grigory
02.06.2017
11:52:02
как они не стараются

folex
02.06.2017
11:52:13
а чо чем опечалил? интересно

Alexey
02.06.2017
11:52:33
может ryzen взлетит

Grigory
02.06.2017
11:53:52
они всеравно на средний сегмент на целелись
может цену собьют корам

Alexander
02.06.2017
12:24:56
запаблишили slick-cats в мавен: https://github.com/RMSone/slick-cats

Grigory
02.06.2017
12:30:43
?

Nikolay
02.06.2017
17:01:26
кто, знает, можно чтобы в circe
("a", 2).asJson == Json.obj("a" -> 2.asJson)

Alexander
02.06.2017
17:02:34
по-моему он туплы в Json.arr превращает, придётся написать свой Encoder

Nikolay
02.06.2017
17:02:55
да, так и есть

Google

Nikolay
02.06.2017
17:03:06
есть такая штука, но делает она не то
scala> ObjectEncoder[(Int, String)].apply((1, "foo")).noSpaces
res4: String = {"_2":"foo","_1":1}
вот я имел в виду без написания своего encoder-а
implicit def fufuEnc[A <: String : Encoder,B: Encoder]: Encoder[(A, B)] = Encoder.instance { case(k,v) => Json.obj(k.toString -> v.asJson) }
scala> ("a", 2).asJson == Json.obj("a" -> 2.asJson)
res25: Boolean = true
так то да

Sergey
02.06.2017
17:11:34

Alexander
02.06.2017
17:12:34
для того, чтобы работать с DBIO как с M, как например здесь расписано http://blog.alexander-semenov.com/monadic-abstraction или здесь https://softwaremill.com/free-tagless-compared-how-not-to-commit-to-monad-too-early/
это к примеру, ну а вообще даже не скрывая DBIO, имея эти инстансы, можно делать всякие котячьи traverse, sequence и т.п., в общем использовать как монаду, аппликатив, MonadError и что-то там ещё

Sergey
02.06.2017
17:14:07
вау

Aleksei
02.06.2017
17:16:40
блин. но есть же дуби. я просто должен был это сказать.

Sergey
02.06.2017
17:29:01

Alexander
02.06.2017
17:31:45
404 в db уровне выглядит странно, но это кому как

Sergey
02.06.2017
17:32:10
это не на db уровне, удобняшки добавленные сверху

Alexander
02.06.2017
17:33:49
тогда прдон

Nick
02.06.2017
17:45:44
Oleg бог типов, как ты с F[Either[_,_]] работаешь?
особенно интересно когда нужно закомбаинить два Either в один

Pavel
02.06.2017
17:55:21
тоже интересно

Daniel
02.06.2017
17:56:02
смотря что имеется ввиду под комбайнить

Pavel
02.06.2017
17:56:46
в for один запихнуть

Daniel
02.06.2017
17:57:20
у Either два параметра, и комбайнить захотется может либо по двум либо по одному

Google

Pavel
02.06.2017
17:58:05
тут either имеется в виду когда слева ошибка а справа то что нужно
и как бы нужно комбайнить только правые
типа F[Either[E, A]] и F[Either[E, B]] превратить в F[Either[E, С]]

Daniel
02.06.2017
17:59:23
это в 2.12 из коробки
Either монада теперече
http://www.scala-lang.org/api/current/scala/util/Either.html
примеры прям в описании класса

Pavel
02.06.2017
18:04:52
окей, они сделали как в scalaz
блин, я забыл какая там проблема была, сча попробую вспомнить

Alexander
02.06.2017
18:13:31
в котиках есть EitherT

Nick
02.06.2017
18:21:59

Kirill
02.06.2017
18:23:28
А в чем вопрос-то, что надо получить?

Daniel
02.06.2017
18:23:33
Bind?

Aleksei
02.06.2017
18:24:28
EitherT надо, уже ж сказали

Daniel
02.06.2017
18:25:25
пока вопроса не было такогочтобы трансформер понадобился

Aleksei
02.06.2017
18:26:36

Daniel
02.06.2017
18:27:30
и чем флэтМэп не ответ?

Nick
02.06.2017
18:27:56

Daniel
02.06.2017
18:28:42
> Я прост в баре, не соображаю
лучше сначала включись, сформулируй хотелку
а то все гаданиями занимаются

Pavel
02.06.2017
18:28:43
а я вспомнил проблему
сча еще раз проверю ее

Google

Aleksei
02.06.2017
18:31:25

Nick
02.06.2017
18:33:54
Как то так, сложно с телефона писать

Daniel
02.06.2017
18:34:31
что значит пропустить?

Nick
02.06.2017
18:35:27
Ну не выполнять вторую функцию и вернуть left

Kirill
02.06.2017
18:35:43
это ли не есть обычные монады-трансформеры О_О или я ничего не понимаю
возьми EitherT[F, _, _] и все так и будет

Nick
02.06.2017
18:37:43
Ну эт не мои код конечно, но гляну

Daniel
02.06.2017
18:41:19
и блин чем это отличается от примера в доке скаловой?
scala> val e1: Either[String, Int] = Left("Dogz")
e1: Either[String,Int] = Left(Dogz)
scala> val e2: Either[String, Int] = Right(5)
e2: Either[String,Int] = Right(5)
scala> for {
| a <- e1
| b <- e2
| } yield a+b
res0: scala.util.Either[String,Int] = Left(Dogz)

Kirill
02.06.2017
18:45:16
EitherT[F, A, B] == F[Either[A, B]]
в скаловой доке все же без F[] над всем этим великолепием

Daniel
02.06.2017
18:46:35
И что дальше? Это к вопросу каким боком?

Kirill
02.06.2017
18:47:19
да кто его знает. Вопроса на самом деле-то не видно самого. Но кусок кода был с упомянутой F[] вокруг дизъюнкции

Konstantin
02.06.2017
19:01:30
всем привет, а как в телеграмме код форматировать?