
KrivdaTheTriewe
05.05.2017
07:41:34
можно мне начальником?

Nick
05.05.2017
07:43:52

Dmitry
05.05.2017
07:45:19
Умывальников

Nikolay
05.05.2017
08:01:20
https://twitter.com/contrarivariant/status/860205789734109188

Google

Denis
05.05.2017
08:09:48
You lost me on words SBT and reasoning

Iaroslav
05.05.2017
08:10:08
зачем таким заниматься? и так SBT не от хорошей жизни юзаешь.

Nikolay
05.05.2017
08:12:19
Можно ответить картинкой про итератор, но я боюсь что paulp не поймет

Шурик
05.05.2017
08:15:55
А что за картинка про итератор?

Nick
05.05.2017
08:19:03
лучше уж так

KrivdaTheTriewe
05.05.2017
08:21:12
Тайп эрейзится, Одерски плачет

Grigory
05.05.2017
08:21:30
он сам это породил
он и пытается убить

KrivdaTheTriewe
05.05.2017
08:21:59

Alexander
05.05.2017
08:23:46
Вставлю свои 5 копеек. Ну, узнать что-нибудь полезное из того, что ранее не изучал и в качественном виде. Например так
Ну блин, никто же не знает чего вы изучали.
Если бы меня просили порекомендовать, я бы рекомендовал анализ, теорию графов, высшую алгебру, теорию автоматов, по дискретке всякое.
Для уровня выше есть всякое около deep learning, статистика с дополнительными главами, жёсткий матан прикладной.
Если совсем упарываться можно посмотреть Category theory, HoTT и всякое околоадгебраическое (теория операторов, теория представлений), дополнительные главы анализа.
Ну это то что мне кажется интересным и более или менее полезным.

KrivdaTheTriewe
05.05.2017
08:24:34
кстати , там райгордский теорию графов сделал на курсере

Alexander
05.05.2017
08:25:36
А, ну ещё по ФП можно почитать - лямбда, типизированная лямбда, теорию типов.

Google

Alexander
05.05.2017
08:28:09
Самоё полезное, по-моему, что называется strong math foundation (анализ, алгебра, дискретная) и статистика. Остальное for fun.
Ещё крутые дисциплины на стыке математики и биологии. Там можно очень интересные результаты получить потенциально.

folex
05.05.2017
08:30:04

Alexander
05.05.2017
08:30:16
Для работы в ИТ.
Ещё комбинаторику отдельно выделю.

folex
05.05.2017
08:31:45
понятно.

Nick
05.05.2017
08:51:09
кстати кто уже cats-effect к себе притащил?

KrivdaTheTriewe
05.05.2017
08:52:12

Dmitry
05.05.2017
08:52:34
пока doobie на свежие fs2 непереедет хз зачем

Nick
05.05.2017
08:52:36

folex
05.05.2017
08:52:46
я пока не понял, куда впихивать io в проекте
но очень хочется попробовать :)
рассказывайте как заюзаете

Nick
05.05.2017
08:52:58

folex
05.05.2017
08:53:05
ну я про cats-effects
у нас на фьючах всё, и как бы норм %)

Wystan
05.05.2017
08:53:20
Для работы в айти надо уметь отвечать всего на пару вопросов. например, последнее собеседование я прошел примерно так: "вот вам задачка такая и такая? за сколько сделаете? - ну за дня три. - а за один? - ну если убрать тесты и фиксы деплоить в прод, то да."

Nick
05.05.2017
08:53:52

KrivdaTheTriewe
05.05.2017
08:53:55
я пока не понял, куда впихивать io в проекте

Artem
05.05.2017
08:53:59

Google

KrivdaTheTriewe
05.05.2017
08:54:08

Wystan
05.05.2017
08:54:15

Artem
05.05.2017
08:54:36

KrivdaTheTriewe
05.05.2017
08:54:56

Wystan
05.05.2017
08:55:28

Nikolay
05.05.2017
09:00:36

Alexander
05.05.2017
09:08:51
IO можно исопльзовать как враппер для blocking кода или для callback-based асинхронщины
у нас есть враппер к S3, отдельная реализация для Future и для Monix Task - практически идентичные. С IO теоретически можно написать одну, а эти две станут тонкими врапперами для неё

folex
05.05.2017
09:16:47

Alexander
05.05.2017
09:18:22
ок, в целом у Monix Task похожий апи чтобы врапать callback based API, ну как в AWSSDK для S3 upload/download например. И никаких промисов

folex
05.05.2017
09:33:41
реактивщину коллбечную еще можно туда заворачивать, но стримы лучше наверное

Kirill
05.05.2017
09:36:20
время тупых вопросов. Есть тест на FreeSpec. Можно ли внутри него сделать еще PropertyChecks? и как? Примешиваю PropertyChecks к тесту, а он не компилится, требует то Shrink, то Arbitrary

Kirill
05.05.2017
09:37:17
оуф, кажется вопрос отпадает. Я скалачек не добавлял в зависимости

Vladimir
05.05.2017
09:48:42
Там ещё внимательное с операторами. В одном случае нужно assert, в другом просто булево выражение возвращать. Иначе тест типо выполняется, но никогда не фейлится

Kirill
05.05.2017
09:51:01
да тут вообще глаз да глаз Документация Скалатеста на сайте не соответствует версии как будто. по крайней мере, всякие should be === я сходу не нашел, использую ассерты

folex
05.05.2017
09:57:17
@fomkin первой в выдаче ссылка на feed.xml, может можно исправить? Если видишь смысл, конечно.

Alexander
05.05.2017
10:19:23

folex
05.05.2017
10:22:27
ну я больше про fluent стиль говорю, сходу даже не знаю, очень обще только представляю
я не настоящий стримовый сварщик :)

Google

Nikolay
05.05.2017
10:50:47
org.scalatest.Matchers подмешал?
должны матчеры работать

Kirill
05.05.2017
10:52:17
удобная штука эти генераторы в СкалаЧеке. Раньше все то же самое на коленке делал в обнимку с Random-ом

Sergey
05.05.2017
10:55:18
но тесты на скалачеке получаются довольно медленными

Nikolay
05.05.2017
10:56:33

A
05.05.2017
11:15:46
тут кто-нибудь slick использует?

Nikolay
05.05.2017
11:16:46
есть такие люди

Admin
ERROR: S client not available

Alexander
05.05.2017
11:16:56
никто не использует

A
05.05.2017
11:17:10
здорово, хоть один признался
не пойму как нормально решить задачку перевода данных в фильтры

Grigory
05.05.2017
11:18:17
в фильтры? данные?

Nikolay
05.05.2017
11:18:25
немного больше конкретики не помешало бы
типа есть фильтры и жгучее желание динамически строить запросы в зависимости от набора условий?

A
05.05.2017
11:19:10
типа a = table.filter(predicate) b = table.filter(predicate)
с = a ++ b
table.filter(c) => безграничное счастье и охуевание от крутости скалы
вот такое API я хотел в идеале
и чтобы каждый predicate генерировался исходя из данных которые мне прилетают, нужно это в фильтрации данных
и вот "гугление" этого всего выдаёт ерунду

Google

A
05.05.2017
11:20:31
или API старое или лыжи не едут

Nikolay
05.05.2017
11:21:30
a и b вернут тебе query, потом ты можешь у них получить .result и склеить в for comprehension например

A
05.05.2017
11:23:17
как клеить?

Alexander
05.05.2017
11:25:00
монадически!

Nikolay
05.05.2017
11:25:40
private def filterByDate(table: TheTable,
dateFrom: Option[Instant],
dateTo: Option[Instant]): Rep[Boolean] = {
(dateFrom, dateTo) match {
case (Some(from), Some(to)) => table.timestamp >= from && table.timestamp <= to
case (Some(from), None) => table.timestamp >= from
case (None, Some(to)) => table.timestamp <= to
case (None, None) => true
}
}
for {
a <- theTable.filter(filterByDate(_, dateFrom, dateTo)).result
b <- theTable.filter(filterByDate(_, dateFrom, dateTo)).result
} yield a ++ b
можно так например
первый метод - это по сути и есть динамический фильтр
а в for comprehension мы все это клеим
читал как for работает?
в смысле for comprehension

A
05.05.2017
11:28:20
вот, ты клеишь через query1 ++ query2

Nikolay
05.05.2017
11:28:31
не совсем
это уже не query

A
05.05.2017
11:28:38
я сделал это через
Seq(
filterCensured(request.censured),
filterByTag(request.tag),
filterByTerm(request.term)
).reduce(_ ++ _)
но дальше ступор
ибо я не понимаю что за тип у результата a ++ b

Nikolay
05.05.2017
11:29:22
попроси idea тебе подсказать
alt+= вроде бы по умолчанию
выделяешь интересующее выражение и смотришь тип
полезная вещь
вот эти твои фильтры - ты хочешь чтобы они составили 1 запрос?

A
05.05.2017
11:31:50
перефразирую, я хз что с этим типом делать