@scala_ru

Страница 808 из 1499
KrivdaTheTriewe
07.07.2017
20:34:59
ну нет , я не против получить кровавый опыт

Nikita
07.07.2017
20:35:05
Да получишь стопудово, главное будь готов мониторить, быстро рекаверить и добавлять нодов

KrivdaTheTriewe
07.07.2017
20:37:35
А какой дизайн неудачный оказался?
шардирование сущностей неправильно сделал , сущности которые шардируюься разными свойствами обладают , и у них ключи могут пересекаться

Google
Nikita
07.07.2017
20:45:46
метрики наше все
что взял для метрик кстати?

KrivdaTheTriewe
07.07.2017
20:50:27
tsdb grafana

Nikita
07.07.2017
20:54:03
а что для отсылки и сбора взял? камон?

KrivdaTheTriewe
07.07.2017
20:55:23
сбор делает отдельный актору и раз в секунду сливает по хттп

сначала сливал акккой хттп, потом заюзал scalaj

Grigory
07.07.2017
20:58:31
Камон пользуй

Для акки есть даже у них интерфейс

KrivdaTheTriewe
07.07.2017
21:00:08
Камон пользуй
все будет , пока текущую инфраструктуру использую , все сразу хорошо не делается

Камон пользуй
плюс тут не только я выбираю

но метрики работают оч хорошо

Nikita
07.07.2017
21:03:08
все будет , пока текущую инфраструктуру использую , все сразу хорошо не делается
смотри какая там еще штука есть http://kamon.io/documentation/kamon-akka/0.6.6/ask-pattern-timeout-warning/

KrivdaTheTriewe
07.07.2017
21:03:39
я видел

Google
KrivdaTheTriewe
07.07.2017
21:03:57
но у меня нет ни одного аска

аск не нужн

Nikita
07.07.2017
21:05:33
да у тебя шикарный дизайн

KrivdaTheTriewe
07.07.2017
21:06:17
да у тебя шикарный дизайн
ужасный на самом деле :( ,но я уже знаю что исправлять , чтобы было лучше

Mikhail
07.07.2017
21:09:21
сбор делает отдельный актору и раз в секунду сливает по хттп
это ведь аггрегированные данные у тебя? в любом случае не лучшая стратегия для нагруженного сервиса. для начала можно сделать примерно так: def receive = { if( сейчас-новая-секунда ) ( шедулим отправку буфера асинком и заменяем новым ) иначе ( аггрегируем в текущий буфер ) } + раз в 10-30 секунд или даже в минуту, можно проверять на всякий случай - если долго не было новых записей, которые бы сбросили буфер - вручную запускать ту же процедуру очистки буфера и шедула отправки

если сервис у тебя не простаивает - новые записи сами постоянно будут в нужное время отщелкивать буфер без задержек и не будешь нагружать дополнительной ерундой и без того нагруженную ерунду. такие принципы много где можно применять

KrivdaTheTriewe
07.07.2017
21:11:51
Nikita
07.07.2017
21:12:46
собственно так и сделано в других либах с метриками

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

KrivdaTheTriewe
07.07.2017
21:15:27
единственное , что у меня не вышло , это artery из под докера , ноя хочу закончить с фичами и работать над надёжностью , к сожалению ddd это не оч для качества проекта

Nikita
07.07.2017
21:19:04
я пока и не пробовал артери, тоже фичи важнее

Nick
08.07.2017
17:45:33
@optician_owl @odomontois я смотрю вы там уже обосновались)

Daniel
08.07.2017
17:46:57
надо знать много инструментов чтобы выбирать подходящий или знать как улучшить другой инструмент

хотя раст не очень подходит сейчас для того, чтобы я хотел но надеюсь допилят

Nick
08.07.2017
17:47:47
А для чего ты его хочешь?

Daniel
08.07.2017
17:47:52
математика

Nick
08.07.2017
17:48:35
Хм

Daniel
08.07.2017
17:50:11
ну как, подходит, но весьма неудобно еще)

Nick
08.07.2017
17:53:25
Для математики любой язык подходит

Google
Friedrich
08.07.2017
17:56:06
Смотря какая математика :)

Она же очень разная бывает.

Для теории типов одни языки (Idris etc.), для логики другие (miniKanren?), для линейной алгебры что-нибудь третье (наверное, что-то для GPU?). Ну и есть языки, которые более-менее умеют то и другое, и есть биндинги ко всему остальному.

Nick
08.07.2017
17:58:28
Рантаим эт дело третье)

Friedrich
08.07.2017
17:59:46
В общем, никак нельзя говорить, что появился язык, который идеально подходит для любой математики. А если обсуждаем какие-то конкретные разделы, то ещё как-то можно начинать рассуждения :)

Vladimir
08.07.2017
18:12:27
http://lex-kravetski.livejournal.com/577235.html

Похоже на продолжение его доклада с прошлогоднего митапа

Alexey
08.07.2017
19:36:54
скаланы подскажите как дружить с фриманатками



Nick
08.07.2017
19:37:16
почему не for!

Alexey
08.07.2017
19:37:34
это интерпритатор на котах

Oleksandr
08.07.2017
19:38:30
выбрать альтернативый редактор кода ну не переваривает идея многие супер-навороченные вещи

Alexey
08.07.2017
19:38:58
нууууу, типо без asInstanceOf идея не схавает да?

Nick
08.07.2017
19:39:10
наркот

Oleksandr
08.07.2017
19:40:01
если кастануть, то пойдет, конечно, но вот звучит это странно "навернуть фримонад и потом заюзать ансейф каст"

Alexey
08.07.2017
19:40:27
ну этож на интерпре :)

Nick
08.07.2017
19:40:31
https://www.youtube.com/watch?v=t2WTtIwgdLc

прикольный спикер)

Alexey
08.07.2017
19:40:36
ну вообще да выглядит так се

ну вообще идея как бы права, с точки зрения типов это выглядит так се

Google
Alexey
08.07.2017
19:47:41
да и в доке по котам такая же какаха



Oleksandr
08.07.2017
19:49:51
лол

тайпсейф!

это как долго готовиться подьему на гору, тренироваться, собрать экипировку, а потом взять и полететь на разваливающемся вертолете

Alexey
08.07.2017
19:56:13
scalac не ругается

так что идею думаю можно "обмануть"

Admin
ERROR: S client not available

Oleksandr
08.07.2017
19:57:26
После матчинга не страшно делать такое
патмат не является универсальным доказательстом чего угодно (в смысле, на уровне типов) и вообще там куча проверок "на дурака" в виде isInstanceOf

так что идею думаю можно "обмануть"
а что именно-то не нравится? красный код в этом месте, по сути, ерунда, тк при его вызове будет работать сигнатура метода — то есть краснота не расползется

Alexey
08.07.2017
19:59:15
ну это то понятно, прост не эстетично

ну и вообще похорошему надо проверить, что тип из алгебры сходится с тем, что я вернул

Oleksandr
08.07.2017
20:01:09
мб можно как-то провернуть тот же фокус с вынесением отдельных мини-методов и указанием типов в них, а в apply вызывать

даже если обмануть не выйдет, будет минимизировано место потенциальной красноты

Mikhail
08.07.2017
20:02:23
так что идею думаю можно "обмануть"
trait Eq[T,T2] implicit def eqImpl[T]:Eq[T,T] = null.asInstanceOf[Eq[T,T]] def safe[T,V](value:V)(implicit eq:Eq[T,V]):T = value.asInstanceOf[T] не прокатит такой сейфкаст для идеи?

у меня нет под рукой такого кода на котором можно проверить, так бы сам проверил)

у сейфа не над имплисит. его явно вместо asInstanceOf просто вызвать

если красноту уберет, то лучше его использовать. потому что не даст случайно ошибиться и закастовать не то

хотя не, похоже не прокатит для идеи. но где-то я подобный трюк проводил успешно

Google
Mikhail
08.07.2017
20:10:59
или он был слегка видоизмененный, не помню уже)

фишка там была в том, что в определенном случае идея пропускала имплисит не сумев его найти и считала его успешным. краснота снималась, компилятор успешно все находил и проверял. волки сыты и овцы целы

Alexey
08.07.2017
20:14:29
ну тоже не оч красиво выходит, хотелось бы как нить избежать asInstanceOf

лан что нить придумаю

Mikhail
08.07.2017
20:17:15
ну тоже не оч красиво выходит, хотелось бы как нить избежать asInstanceOf
может и можно, не видел полностью код твой) не могу подумать на этот счет. но когда нет другого выхода - asInstanceOf можно применять только после соответствующих доказательств, либо пусть краснота будет - в бизнеслогике нельзя по другому

Oleksandr
08.07.2017
20:56:53
Oleg
08.07.2017
20:57:59
и как же? trait A trait B def foo(a: A): B = ???
не понял, что это за код, но паттерн-матчинг как раз отличный способ писать доказательный код, как раз дочитываю статью о том, как можно теперь и HoTT патматом писать

Oleksandr
08.07.2017
20:59:09
одним патматом афаик нельзя доказать, что несвязанные типы A и B равны

Oleg
08.07.2017
21:00:08
одним патматом афаик нельзя доказать, что несвязанные типы A и B равны
можно получить изоморфизм и получить по унивалентной аксиоме доступ к равенству

Oleksandr
08.07.2017
21:00:14
собственно в спиннете выше вместо ??? было бы интересно увидеть пример (non-exhaustive не считается)

Oleg
08.07.2017
21:00:56
собственно в спиннете выше вместо ??? было бы интересно увидеть пример (non-exhaustive не считается)
собственно, у тебя открытые trait ы, как что-то можно доказывать в открытом семействе типов

Oleg
08.07.2017
21:01:24
если доказательство может стать невалидным от его расширения

Alex
08.07.2017
21:01:39
зависимым патматом можно да

with в идрисе

Oleksandr
08.07.2017
21:02:08
вообще a.asInstanceOf[B] — вполне себе доказательство или мы вообще о разном говорим)

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