@scala_ru

Страница 619 из 1499
Oleg
24.04.2017
17:15:22
просто без скобок круглых как значения в Enumeration

Alexander
24.04.2017
17:16:00
эмм и они все будут равны? ))

Nikita
24.04.2017
17:16:25
Alexander
24.04.2017
17:16:33
мне нужны разные значения Project, методу передаю префикс, а он мне возвращает (видимо тупл) из api/impl/etc модулей

Google
Oleg
24.04.2017
17:17:27
значения в енумерейшне не равны ведь

Nikita
24.04.2017
17:25:39
если не хочешь тратиться на оверхед для Future, можно попробовать синхронный режим в https://github.com/sirthias/swave
Спасибо. Выглядит похоже. Возможно асинхронный вариант для пеня даже лучше. Примеры типа такого мотивируют попробовать http://swave.io/usage/show-off/fibonacci.html

Alexander
24.04.2017
17:26:19
так и что что не равны? Как мен разные значения присвоить-то?

это просто будет вызов повторён несколько раз

http://stackoverflow.com/questions/43594283/define-multiple-projects-in-single-line-in-sbt

Nick
24.04.2017
17:28:02
Ох родимый сбт)

Vadim
24.04.2017
17:35:31
а зачем вообще таким образом объявлять проекты? чем обычные способ неугоден?

Alexander
24.04.2017
17:35:54
меньше бойлерплейта

Nick
24.04.2017
17:36:15
Эт с чего меньше?

Vadim
24.04.2017
17:36:35
а какой болер лпейт ты хочешь убрать то? - ты можешь сделать отдельно настройки и кажому проекту их скормить

Nick
24.04.2017
17:40:11
Вообще насколько я помню нужно явно писать = Project

Я даже где-то в неитиве напарывался

Google
Alexander
24.04.2017
17:41:07
необязательно явно, через метод *один* проджект можно объявить

Nick
24.04.2017
17:41:33
Этот ж макрос и он имя в сеттинги из названия переменной берёт?

Над глянуть, но попозже

Alexander
24.04.2017
17:43:40
вызов макроса может быть где угодно

Nick
24.04.2017
17:44:16
Вызов да, но не гарантировано правильное поведение)

Сейчас до дома доеду и гляну

Mikhail
24.04.2017
17:50:52
меньше бойлерплейта
бойлер плейт обычно вроде так убирают https://github.com/scalameta/sbt-macro-example/blob/master/build.sbt

затея с ванлайнероммультипрожектомантибойлерплейт - крайне сомнительна)

Alexander
24.04.2017
17:52:22
пока получилось сделать вот так object Util { case class ProjectGroup(api: Project, logging: Project, awsSdk: Project, awsSdkMonix: Project) def DefProjectGroup(name: String, coreApiProject: Project, coreAwsSdkProject: Project, awsSdkDeps: Seq[ModuleID]) (implicit settings: MiuProjectSettings): ProjectGroup = { val apiProject = DefApiProject(name).dependsOn(coreApiProject) ProjectGroup( apiProject, DefLoggingProject(name).dependsOn(apiProject), DefAwsSdkProject(name).dependsOn(coreAwsSdkProject, apiProject).settings(libraryDependencies ++= awsSdkDeps), DefAwsSdkMonixProject(name).dependsOn(coreAwsSdkProject, apiProject).settings(libraryDependencies ++= awsSdkDeps) ) } } И в build.sbt: lazy val s3ProjectGroup = DefProjectGroup("s3", coreApi, coreAwsSdk, Seq(Deps.AwsSdkS3(Versions.AwsSdk))) lazy val s3Api = s3ProjectGroup.api lazy val s3Logging = s3ProjectGroup.logging lazy val s3AwsSdk = s3ProjectGroup.awsSdk lazy val s3AwsSdkMonix = s3ProjectGroup.awsSdkMonix Но не одной строкой...

Vadim
24.04.2017
17:54:51
но зачем?) ты их в утилях одной строкой чтоли создаешь?)

Mikhail
24.04.2017
17:55:44
но зачем?) ты их в утилях одной строкой чтоли создаешь?)
Извращенец вестимо... Других причин пока не вижу)

Alexander
24.04.2017
17:55:51
s3 - это не единственный "project group", аналогичный набор объявляется для kinesis и др. амазоновских штук

Vadim
24.04.2017
17:59:06
ну а вчем смысл твоих групп? ты можешь побить по папкам и внутри свои группы устроить

Alexander
24.04.2017
17:59:33
короче, проходите мимо

(это последним двум советчикам)

Nick
24.04.2017
18:05:17
@tvaroh а почему не сделать так https://github.com/scala-native/scala-native/blob/master/build.sbt ?

Alexander
24.04.2017
18:20:41
что конкретно там имеешь в виду?

вроде всё обычно

Nick
24.04.2017
18:44:27
вроде всё обычно
то и имею ввиду, сделать как все

Alexander
24.04.2017
19:00:04
Вопрос: появилась потребность, своего рода, обобщённом АДТ, сделал так: object VAdmin { sealed trait VAdminA[T] case class NewMessages[T](messages: Seq[T]) extends VAdminA[T] case class MeetingRequestDetected[T](message: T, m: NeetlyMeeting) extends VAdminA[T] case class NewMeetingRequest[T](meetingRequest: MeetingRequest) extends VAdminA[T] case class Error[T](message: String) extends VAdminA[T] case class Done[T]() extends VAdminA[T] } А решение лучше никто не подскажет?

Google
Arthur
24.04.2017
19:05:03
Убрать дженерики и заменить их на части адт

Типо если месседж это стринг

То сделай VMessageString

Если что-то ещё то добавишь еще

Vitalii
24.04.2017
19:12:18
Activator will be EOL-ed on May 24, 2017. https://www.lightbend.com/community/core-tools/activator-and-sbt

Alexey
24.04.2017
19:14:26
о, так он еще был живой

Alexander
24.04.2017
19:25:04
Убрать дженерики и заменить их на части адт
Спасибо, до меня что-то не дошло.

Alexander
24.04.2017
19:25:07
если кому интересно, на SO ответили http://stackoverflow.com/a/43595078/312708

Arthur
24.04.2017
19:26:27
Спасибо, до меня что-то не дошло.
https://speakerdeck.com/archdev/recursion-schemes-and-fixed-point-data-types

Глянь там на первых слайдах адт

Alexander
24.04.2017
19:26:37
Вот такое было: case class Admin[T]() { // messages case class NewMessages(messages: Seq[T]) case class MeetingRequestDetected(message: T, m: NeetlyMeeting) case class NewMeetingRequest(meetingRequest: MeetingRequest) case class Error(message: String) object Done По-моему смешно. Оно ещё не паттерн-матчилось из-за разных инстансов Admin.

Arthur
24.04.2017
19:27:22
Главное не впиливай дженерики как там) там кейс с рекурсией типов дальше

Alexander
24.04.2017
19:28:37
Ага, я уже шейплесовские TypeCase'ы притащил из-за них.

Aleksei
25.04.2017
05:24:23
рекорд!



Nick
25.04.2017
05:30:38
@aleksei_t ты там биткоины маинишь?

Aleksei
25.04.2017
05:31:06
sbt compile с нуля! =)

Vladimir
25.04.2017
05:31:21
оно того стоило?)

Aleksey
25.04.2017
05:34:11
рекорд!
что бы было, если бы у вас там еще бы шэплес был

Aleksei
25.04.2017
05:34:40
ну мы просто переехали на гитхаб. стало интересно сколько по времени оно. ппц конечно, так жить нельзя =)

Google
Aleksey
25.04.2017
05:36:19
А на CI не видно?

Aleksei
25.04.2017
05:39:00
не надо сейчас сыпать соль на рану )

Aleksey
25.04.2017
05:39:51


Alexandr
25.04.2017
06:43:01
Суть картинки не понял :(

Admin
ERROR: S client not available

Alexandr
25.04.2017
06:43:42
20 минут - как-то по детски. Вот если цинк вырубить....

Или он и так?

Сорри, 2 часа спал.

Nikolay
25.04.2017
06:44:16
Так это с нуля

Alexandr
25.04.2017
06:46:07
Имею в виду, что видел часовой билд скала проекта. Правда, потом выяснилось, что они цинк забыли запустить...

Nikolay
25.04.2017
06:48:51
Каждая компиляция час?

Aleksey
25.04.2017
06:50:16
Aleksey
25.04.2017
06:55:08
В этом всё очарование скалы
Да ты чо! Скала же своим веременем компиляции как бы говорит нам: "переходите на дико модную микросервисную архитектуру".

Aleksey
25.04.2017
06:56:01
Зачем их все одновременно перекомпилировать?

?Ivan
25.04.2017
06:56:12
Aleksey
25.04.2017
06:58:47
чтобы наверняка
file.save() file.save() // чтоб наверняка

Google
Aleksei
25.04.2017
07:05:52
нанопенисы, простите

Kirill
25.04.2017
07:07:39
file.save() file.save() // чтоб наверняка
не, второй надо в catch и //should never happen

Andrey
25.04.2017
07:10:45
нанопенисы, простите
нанопенисы не противоречат феминистским СОСам

Aleksei
25.04.2017
07:17:08
нанопенисы не противоречат феминистским СОСам
а бонеры это не секшуал харассмент?

Denis
25.04.2017
07:18:53
It's Beardfacé

Andrey
25.04.2017
07:39:58
скаланы, как можно обработать обе стороны Either? типа все правые собрать в список, а левые залогировать с ошибкой

Nikolay
25.04.2017
07:40:43
Разматчить?

Nick
25.04.2017
07:41:16
А эт валидные данные слева,если справа ошибка

Andrey
25.04.2017
07:43:22
да, свернуть в пару листов мне больше нравится

Aleksey
25.04.2017
07:43:33
плюсую свертку

Denis
25.04.2017
07:45:13
listOfEither.foldLeft((List.empty[L], List.empty[R])) { case ((errors, results), x) => x match { case Left(error) => (error :: errors, results) case Right(result) => (errors, result :: results) } }

listOfEither.foldLeft((List.empty[L], List.empty[R])) { case ((errors, results), x) => x.fold(_ :: errors, _ :: results) }

Wlad
25.04.2017
07:49:48
Здаров мужики. Кто пробовал писать на скале под андроид? У вас получилось подружить андроид студию с sbt?

Andrey
25.04.2017
07:50:39
@notxcain спасибо!

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