
Grigory
29.10.2016
19:59:35
мож не четверг
У меня никак не получается

Nikolay
29.10.2016
21:57:52
кто-нибудь пользуется scalafmt? автор решил что 80 символов в строке - это хорошее дефолтное значение. замечаю что мне 80 мало

Dmitry
29.10.2016
22:03:07
ну расширь до 100

Google

Dmitry
29.10.2016
22:04:44
а вообще http://softwareengineering.stackexchange.com/questions/604/is-the-80-character-limit-still-relevant-in-times-of-widescreen-monitors/1848#1848

Nikolay
29.10.2016
22:04:52
Скорее всего так и сделаю, может просто есть адепты 80 символов, которые пояснят как правильно

Dmitry
29.10.2016
22:07:06
ну на side-by-side diff с большой шириной сложно будет
ревью например

Timothy
29.10.2016
22:17:17
maxColumn = 100
в .scalafmt.conf
у меня такой конфиг для всех проектов:
style = defaultWithAlign
maxColumn = 100
assumeStandardLibraryStripMargin = true
continuationIndent.callSite = 2
includeCurlyBraceInSelectChains = true
rewrite.redundantBraces.maxLines = 100
rewrite.redundantBraces.includeUnitMethods = true
rewrite.rules = [SortImports, RedundantBraces, PreferCurlyFors]

Andry
30.10.2016
04:15:54
А чем плох стандартный анализатор кода? Он по крайней мере еще и спрашивает разрешения перед изменением. Как-то не пошел у меня scala fmt

Aleksey
30.10.2016
06:27:21
То есть следущая встреча в нонце декабря. Йолку нарядим.

Dmitry
30.10.2016
06:32:18
?

Google

Denis
30.10.2016
06:40:47
Подскажите годный туториал по scalaz? Чтоб было понятно на кой черт это надо, а то гуглится одна вата какая-то.

Dmitriy
30.10.2016
07:20:38
http://www.smartjava.org/content/scalaz-features-everyday-usage-part-1-typeclasses-and-scala-extensions
Там 3 статьи, рассматривают с практической точки зрения

Ilya
30.10.2016
10:49:49
Скалаз - это "шоб как в хаскелле"
Из утилитарного там в лоб наверно Validation

D
30.10.2016
10:50:16
как что-то плохое

Ilya
30.10.2016
10:50:31
Не, я не говорю, что плохое
Я к тому, что это не набор стринг хэлперов или коллекшн экстеншонов
То есть, если хочешь "как в хаскелле", то просто берешь и
Юзаешь
Ничего учить не надо
http://eed3si9n.com/learning-scalaz/7.0/

Nikolay
30.10.2016
11:12:13
@ktimothy а что значит rewrite.redundantBraces.includeUnitMethods = true
def foo:Unit = { () } -> def foo: Unit = () типа такого?
includeUnitMethods
redundant braces - это понятно

Timothy
30.10.2016
11:19:21
includeUnitMethods = false
def x(): Unit = {
println(1)
}
оставит как есть
а true превратит в
def x(): Unit =
println(1)
но я только сейчас заметил, что эти 2 опции из конфига уже дефолтные
и их можно опустить

Nikolay
30.10.2016
11:37:14
кто-нибудь работал с scalapb? там в генерируемых кейс классах почти все поля optional, и для них генерируются методы withXXX
case class GeneratedThing(a: Option[Int], b: Option[String]) {...// generated shit}
GeneratedThing()
.withA(1)
.withB("here we go")
есть что-то подобное в виде отдельной библиотеки?

Google

Grigory
30.10.2016
12:19:36
Scalapb или использовать свою реализацию

Vadim
30.10.2016
12:20:32
имеется ввиду либа, чтобы генерить билдеры для кейс классов

Nikolay
30.10.2016
12:32:51
я думаю что вполне можно написать свою реализацию на макросах, но может быть есть уже готовое

KrivdaTheTriewe
30.10.2016
12:37:20
макросов больше нет
скала мета осталась

Nikolay
30.10.2016
12:38:23
я думаю что текущие макросы с нами будут еще какое-то время

Oleksandr
30.10.2016
12:41:36
до момента, когда дотти заменит скалас
а на это даже прогнозов нету

KrivdaTheTriewe
30.10.2016
12:41:51
@fomkin мне кажется тайл убирать нужно

Nikolay
30.10.2016
12:56:41
нашел что-то похожее: https://github.com/harveywi/shapeless-builder но кажется что это overkill

Denis
30.10.2016
14:23:03
Скаланы, тут недавно статья пробегала про Vim или про Emacs, с хабра вроде, там у всех еще бомбануло как обычно, не напомните? :)

Dmitry
30.10.2016
14:23:32
ты уточни давай про вим или про емакс :E

Wystan
30.10.2016
14:23:51
бомбит только от вима

Nikolay
30.10.2016
14:24:11
универсальная статья про вим и emacs чтобы бомбануло сразу у всех)

Dmitry
30.10.2016
14:26:48
всем должно быть ed достаточно

Dmitry
30.10.2016
14:27:54
или вима

Denis
30.10.2016
14:28:31

Dmitry
30.10.2016
14:28:40
ишь троль
не это https://habrahabr.ru/post/280946/ ?

Denis
30.10.2016
14:34:59
Там вроде перевод был

Google

Vadim
30.10.2016
14:35:13
я помню
но название забыл)

Dmitry
30.10.2016
14:35:36
ну хоть что там было? применительно к сабжу?

Vadim
30.10.2016
14:35:55
https://habrahabr.ru/post/307084/
во
@notxcain а ты к чему ее вспомнил?

Denis
30.10.2016
14:36:57
О, спасибо!
Да я ее хотел прочитать, куда то кинул и забыл )
https://infoscience.epfl.ch/record/222780/files/p51-odersky.pdf
Implementing Higher-Kinded Types in Dotty

D
30.10.2016
15:33:51

Vadim
30.10.2016
15:53:08
что ты имеешь ввиду?)
там только комменты читать нужно)

Nikolay
30.10.2016
20:38:48
finch + circe довольно приятно пользоваться, по крайней мере старт приятный. ожидаешь что этот код будет работать, и он правда работает

Denis
30.10.2016
21:00:29
http://get-scala.org/2.12

Dmitry
30.10.2016
21:00:43
продакшн реди?

Nikolay
30.10.2016
21:01:14
это не официальный сайт все таки
но сами по себе release-notes с полезной информацией - это да

KrivdaTheTriewe
30.10.2016
21:03:08

Alexey
30.10.2016
21:58:34
почему в Скале такие трудности с JSON -> case class и обратно? Какие-то implicit ридеры, врайтеры писать. Почему нету какой-нибудь автоматической мапилки, как Jackson в Java ?

Vadim
30.10.2016
21:59:35
есть - только они рантаймовые

Google

Nikolay
30.10.2016
21:59:46
implicit readers/writers делаются на этапе компиляции, зачастую генерируются макросами, generic derivation шейплеса
в upickle, circe и пушке(так?) можно не писать явно эти самые readers/writers
дело привычки наверное, я после Java волосы рвал на голове от play json. сейчас привык, и этот подход с implicit R/W мне кажется лучше чем тот что в GSON, или в других библиотеках из java мира

Alexey
30.10.2016
22:04:34
мне кажется много излишнего кода, даже с макросами. в Spring это все за кадром делается

Nikolay
30.10.2016
22:04:59
в circe тоже за кадром
https://scalafiddle.io/sf/ikqpuo0/0

Alexey
30.10.2016
22:06:54
ок, спасибо. имеет смысл это в play тащить?

Oleksandr
30.10.2016
22:09:42
нету никаких сложностей — это настолько просто, что каждый скалист делает свою джсон либу

Nikolay
30.10.2016
22:10:25
ок, спасибо. имеет смысл это в play тащить?
не могу точно сказать. библиотека развивается, она еще pre-1.0, так что возможны breaking changes. есть вероятность что по-разному сериализуются какие-то типы данных в circe и play-json(не проверял сам). а так, если свежий проект, то я бы затащил

Dmitry
31.10.2016
06:29:55
ок, спасибо. имеет смысл это в play тащить?
Ну а еще можешь потратить пару часов пытаясь понять почему не работает, имплиситов не видит, хотя вот же все что надо положила, а окажется что это SI-7046. А потом тебе все надоест и вместо авто станешь пользоваться семиавто.
Короче однозначно тащить.

Alexey
31.10.2016
07:04:38
ок, попробуем. там по сути просто свой парсер написать надо, если я правильно понял
для play

Vadim
31.10.2016
07:30:32
7ой выпуск подкаста - http://scalalaz.ru/series-07.html

Nikolay
31.10.2016
09:45:49
можете посоветовать Telegram bot API на scala?
https://github.com/mukel/telegrambot4s
https://github.com/nikdon/telepooz
то что нашел, может быть есть еще какие-то реализации?

Aleksey
31.10.2016
09:52:26
Еще был https://github.com/levkhomich/scatebot от @levkhomich