@scala_ru

Страница 5 из 1499
Grigory
11.05.2016
16:58:28
да не;

на тасках эту задачку решить просто: implicit class TaskBackoff[A](task: Task[A]) { /** * Implement non-blocking Exponential Backoff on a Task. * @param p returns true for exceptions that trigger a backoff and retry */ def retryEBO(p: (Throwable => Boolean) ): Task[A] = { def help(count: Int): Future[Throwable \/ A] = { val base: Duration = 52.milliseconds val timeout = base * Random.nextInt(math.pow(2,count).toInt) // .extInt is [), implying -1 task.get flatMap { case -\/(e) if p(e) => help(count + 1) after timeout case x => Future.now(x) } } Task.async { help(0).unsafePerformAsync } } }

Юрий
11.05.2016
16:59:18
А почему нельзя их и взять?

Grigory
11.05.2016
16:59:47
хотим выпилить от скалаза зависимость

Google
Юрий
11.05.2016
16:59:49
Еще в monix есть Task, как раз сегодня слушал доклад про него

Grigory
11.05.2016
17:00:13
потому что у нас скалаз ток изза монокля который потенциально на кошек мигрирует

Dim
11.05.2016
22:30:46
Монокль вам зачем? У softwaremil есть очень лёгкие линзы.

Grigory
12.05.2016
05:31:30
Да исторически сложилось) ну моноколь быстрые, но тянут за собой скалаз

да и от скалаза избавиться не удалось пока; список фьюч, которые с таймаутом рикаверятся не так просто синхронизировать оказалось ._.'

Slavik
12.05.2016
08:51:39
кстати, я недавно на вот такую либу набрел: https://github.com/pathikrit/sauron

Правда, пока активно не использовал, но API, имхо, поприятнее, чем у аналогов

Nikita
12.05.2016
09:14:09
ну https://github.com/adamw/quicklens тоже ничего

Dmitry
12.05.2016
09:21:57
Я правильно понимаю, что линзы нужны для трансформации неизменяемых структур данных?

*Были придуманы

Grigory
12.05.2016
09:24:07
да

Nikita
12.05.2016
09:24:31
ага, чтобы слишком много не делать вложенных вызовов .copy

Aleksey
12.05.2016
09:26:39
Саурон хорошее название.

Google
Dmitry
12.05.2016
09:29:33
Блин, крутая штука. Я делал так: case class Pawn(side: Side, position: Position, board: Option[Board]) extends Piece { def withBoard(board: Board): Piece = Pawn(side, position, Some(board)) } а теперь можно просто заюзать линзы

Grigory
12.05.2016
09:30:22
да, используй линзы

тут зависит от целей) но я из своего опыта скажу главное не шейплез линзы) и не потому что они страшные или шейплез страшный а потому что они медленные

компиляция экспоненциально растет

а остальное используй; тут дело вкуса и зависимостей

Slavik
12.05.2016
09:42:51
> @pomadchin не потому что они страшные или шейплез страшный а потому что они медленные +100

Alex
12.05.2016
10:54:37
линзы это всего лишь морфизмы между профункторами с силой, what's the problem?

Vyatcheslav
12.05.2016
11:24:22
Я тоже так могу: "Линейное уравнение продуцирует интеграл Пуассона. К тому же аксиома концентрирует неопределенный интеграл." :D (стырено отсюда, если кто недавно подключился к интернету: https://yandex.ru/referats )

Aleksei
12.05.2016
11:25:48
линза с силой это сфинктер =)

Aleksey
12.05.2016
11:27:19
аппликативный сфинктер

Dmitry
12.05.2016
11:35:21
> @clayrat линзы это всего лишь морфизмы между профункторами с силой, what's the problem? Мне иногда кажется, что это такая манера общения) https://i.gyazo.com/a92a1a28508d06729b0f81fcbb8c34b6.png

Alex
12.05.2016
11:36:32
линза с силой это тавтология ;)

если в основе просто профунктор - изоморфизм, с силой - линза, с выбором - призма

а вообще это была шутка на тему monad is just a monoid in the category of endofunctors ?

Dmitry
12.05.2016
11:38:13
вот, откуда оно пошло

=)

многие говорят в таком стиле

“это всего лишь))" я про это

Alex
12.05.2016
11:38:50
на самом деле эта фраза тоже шутка, всерьез так никто не объяснял

скорее всего взято из учебника макклейна

Google
Dmitry
12.05.2016
11:39:54
https://i.gyazo.com/68bcb90a9461051337bd82a6f73cee32.png

И вправду, смешно ж

Alex
12.05.2016
11:41:42
ну профунктор это типа стрелки b -> c

можно замапить ковариантную функцию a->b, получим стрелку a => c

Viacheslav
12.05.2016
11:42:16
что означает слово "типа"?

Alex
12.05.2016
11:42:37
или замапить контравариантную функцию c->d, получим стрелку b => d

Dmitry
12.05.2016
11:43:21
профунктор - функция над ->?

для определенных аргументов

Alex
12.05.2016
11:43:45
скажем так, функция это разновидность профунктора, но бывают и другие

instance profunctorFn :: Profunctor (->) where dimap a2b c2d b2c = a2b »> b2c »> c2d

»> здесь просто композиция функций, пюрскриптовый синтаксис :_

Dmitry
12.05.2016
11:46:36
А как это прочитать? “a маппиться на d, через что-то”

?

Alex
12.05.2016
11:47:29
можно и так наверное

Dmitry
12.05.2016
11:53:03
типа линза - функция над функция с определенным искажением

Alex
12.05.2016
11:59:10
ну вообще линза это пара функций i->o и (i,o')->i'

Grigory
12.05.2016
11:59:51
это просто пара put / get функций

и не больше не меньше

Alex
12.05.2016
12:00:05
типа получить вьюху из модели и восстановить новую модель из новой вьюхи и старой модели

Grigory
12.05.2016
12:05:03
и два закона есть)

Google
Grigory
12.05.2016
12:05:06
очевидных

get (put v s) = v put(get s) s = s

:D

Alex
12.05.2016
12:05:52
еще иногда добавляют put o’ (put o i) = put o’ i

Grigory
12.05.2016
12:06:31
да там много

есть еще законы частичного применения

Alex
12.05.2016
12:10:42
в общем-то смысл определения через профункторы вроде бы именно в том, что законы автоматически выполняются

Dim
13.05.2016
00:18:56
quicklens как раз в Sowtwaremil разрабатывался, судя по пакетам. Годная, использую.

Anton
13.05.2016
08:50:52
Прошу прощения за вторжение. Помогите, пожалуйста, найти сильного Senior Scala Developer разрабатывать с нами серверную часть www.Acotor.im Actor - это мессенджер под iOS, Android, веб и десктопы c открытым исходным кодом. Мы довольно популярны на гитхабе (https://github.com/actorapp/actor-platform, постоянно пилятся форки. Гарантируем интересные технические задачи, адекватную команду, уважительную зарплату на уровне. Офис находится в Петербурге, но возможна и удаленка. Писать можно мне на anton@actor.im Заранее благодарю.

Nikita
13.05.2016
08:54:20
что-то у вас ссылка битая

Grigory
13.05.2016
08:54:38
actor.im

)

Anton
13.05.2016
08:54:45
и вправду, спасибо)

Nikita
13.05.2016
08:55:55
а откуда название пошло? потому что изнутри все на акковских акторах работает?

Anton
13.05.2016
08:56:37
Акковские акторы безусловно сильно вдохновили создателей проекта

Но да, внутри все примерно так

IEvgenii
13.05.2016
08:58:17
фултайм ищете ?

Anton
13.05.2016
08:58:22
Да

Nikolay
13.05.2016
10:46:49
а откуда название пошло? потому что изнутри все на акковских акторах работает?
как и сказал наш коллега - на стороне сервера действительно используются акковские акторы. также примерно с момента выходы stable релиза(пусть и experimental) используются akka streams и akka http. Раньше была связка акторы + slick + postgres, сейчас ключевые моменты перевели на akka persistence, event-ы пишутся в postgres. В дальнейшем есть планы отвязаться от одного хранилища в принципе. на клиентах кстати тоже используется модель акторов, только уже самописная. вообще весь проект очень интересный с технической точки зрения. например клиентская логика шарится между всеми платформами, под которые делаем клиентов(ios, android, web). есть кодогенерация схемы API, которую используют клиенты и сервер, и другие интересные вещи.

Google
Anton
13.05.2016
11:33:51
По договоренности, в районе 120-200

?Ivan
13.05.2016
11:40:57
Alexandr
13.05.2016
11:41:44
Как вы считаете, за удаленку оплата должна быть выше, чем за офис или ниже?

Nikolay
13.05.2016
11:42:26
а почему она должна отличаться?

?Ivan
13.05.2016
11:42:29
Это холиварный вопрос.

Есть много причин по которым она может отличаться как в одну так и другую сторону

Pavel
13.05.2016
11:42:53
Должна быть выше - потому что экономия на офисном месте, но по факту хорошо если такая же

Andrey
13.05.2016
11:43:33
Так и что, что экономия на офисном месте? Это деньги работодателя. Работа выполняетя одна и та же

Nikolay
13.05.2016
11:43:42
соглашусь тут

Alexandr
13.05.2016
11:44:08
По факту, работая на удаленке, работник имеет +2 часа дополнительного времени за счет отсутствия необходимости добираться до офиса

Anton
13.05.2016
11:44:37
А иногда и море за окном :)

Andrey
13.05.2016
11:45:06
А иногда наоборот: в офисе море за окном, а дом в жопенске каком-то

Alexandr
13.05.2016
11:45:26
44 часа в месяц. По-моему, логично, чтобы компенсировали это время в ЗП. Нет?

Daniel
13.05.2016
11:45:38
работник может жить при желании в 5 минутах от работы, это не имеет отношения к делу что точно страдает на удаленке, это комуникация ну и плюс не так много людей, которые по натуре своей могут с нормальной продуктивностью работать без какого-либо контроля

Pavel
13.05.2016
11:45:39
работа выполняется та же, но с меньшими расходами работодателя, значит работодатель имеет некоторый профит. Куда он пускает этот профит: на увеличение зп или на что другое, конечно дело работодателя

?Ivan
13.05.2016
11:45:54
А еще работая на удаленке можно постоянно отвлекаться на орущих детей, перф соседей и т.п. В общем не все так однозначно

Pavel
13.05.2016
11:46:06
да, тоже верно

Dmitry
13.05.2016
11:46:12
Допустим, что важно не сколько человек работает, а как и что он делает.

Да пусть хоть 2 часа работает, если он успевает за это время сделать то, что запланировал

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