
Alex
22.05.2017
10:54:06
S S S S a

Nikolay
22.05.2017
10:54:36
s3a больше нравится

Nick
22.05.2017
12:02:48

Arcady
22.05.2017
12:11:03

Google

Nikolay
22.05.2017
12:52:21
circe может из коробки сделать декодинг в shapeless-овский record? судя по документации и тестам в circe все должно работать, но не компилится
https://github.com/circe/circe/blob/master/modules/tests/shared/src/test/scala/io/circe/shapes/ShapelessSuite.scala#L48

Dmitry
22.05.2017
13:27:06
ребя, подскажите структуру данных для хранения сообщений приложения типа чатик

Daniel
22.05.2017
13:27:56
Домашка?)

Dmitry
22.05.2017
13:28:29
собеседование на junior

Daniel
22.05.2017
13:28:53
давай как на SO
пишешь конкретную проблему, её пытаемся разобрать
а то докапываясь до требований может всё перевернуться

Aleksey
22.05.2017
13:28:55

Oleksandr
22.05.2017
13:29:23
там много всякого

Dmitry
22.05.2017
13:30:15

Aleksey
22.05.2017
13:31:01

Nikita
22.05.2017
13:31:21

Daniel
22.05.2017
13:32:13

Google

Alex
22.05.2017
13:32:20
блокчейн

Dmitry
22.05.2017
13:32:20

Alex
22.05.2017
13:32:43
зато секурно

Daniel
22.05.2017
13:33:02
ну предположим у тебя есть такой хэш сет с сообщениями
как ты будешь подгружать историю?
можно прям пример кода

Vladimir
22.05.2017
13:33:47
_.sort(_.createdAt) кривая рожа.жпг

Daniel
22.05.2017
13:35:45

Dmitry
22.05.2017
13:36:18
всем спасибо, ребята

Aleksey
22.05.2017
13:36:23

Daniel
22.05.2017
13:39:58
подгружать историю сообщений
scala> val xs = collection.mutable.HashSet("10 msg", "2 msg", "5 msg", "3 msg")
xs: scala.collection.mutable.HashSet[String] = Set(3 msg, 2 msg, 5 msg, 10 msg)
scala> xs.head
res3: String = 3 msg
для пятницы, кстати, норм чат будет)

Alex
22.05.2017
13:40:18
если без троллинга, то разновидности CRDT вроде часто используют

Aleksey
22.05.2017
13:40:44

Daniel
22.05.2017
13:41:06
Вряд ли на позицию джуниора требуется распределенное решение
Вопрос скорее в конкурентном доступе к одному ресурсу

Aleksey
22.05.2017
13:45:40
У нас была какая тема. Наше хранилище сообщений для чатика должно было
а) быстро, желательно за один поход в лоулевел-сторадж получить список сообщений
б) быстро получать следующие экраны (скроллинг).
в) искать сообщения полнотекстовым поискаом выводя их с контекстом и возможностью опять же поскроллить вверх-вниз.
По этому поверх произвольного KV с поддержкой CAS мы накрутили двусвязный список списков по N сообщений.

Daniel
22.05.2017
13:47:52
Место где царит веселье и радость

Alex
22.05.2017
13:53:30
и хэш

Google

Dmytro
22.05.2017
14:03:24
Привет. Написал пост на Хабре по мотивам своего курса на Степике:
https://habrahabr.ru/post/329176/

.
22.05.2017
14:05:22

Aleksey
22.05.2017
14:09:41

.
22.05.2017
14:10:32

Aleksey
22.05.2017
14:12:16

KrivdaTheTriewe
22.05.2017
14:13:19

Aleksey
22.05.2017
14:15:42

.
22.05.2017
14:15:47

Aleksey
22.05.2017
14:18:09

.
22.05.2017
14:19:19

Daniel
22.05.2017
14:20:41

.
22.05.2017
14:21:40

Daniel
22.05.2017
14:22:31
да
но всегда есть нюансы (как с любым кэшом) и для точного понимания (для приближения к этому) надо изучать уже конкретные базы
дьявол в деталях

.
22.05.2017
14:24:50

KrivdaTheTriewe
22.05.2017
15:21:44
я сейчас наброшу, а есть бенчмарки горутин и правильно организованных скалафьюч ?

Nikita
22.05.2017
15:26:06

Alex
22.05.2017
15:26:44
сомнительно

Denis
22.05.2017
15:26:57
чет сдается мне что нет
слишком много оверхеда ради i=i+1

Google

Nikita
22.05.2017
15:28:17
если каждый тред будет свою thread-local копию обновлять, и раз в секунду синхронизировать с другими
должно же быстрее быть чем CAS у atomicLong? или тут что-то хитрое должно быть?

Aleksei
22.05.2017
15:29:28

Alexander
22.05.2017
15:29:47

.
22.05.2017
15:31:45

Vladimir
22.05.2017
15:35:46

Nikita
22.05.2017
15:39:11
с одной стороны да, с другой где-то должно быть число тредов при котором CAS становится медленнее
надо будет написать небольшой бенч
для проверки гипотезы

Vladimir
22.05.2017
15:43:50
тут уже могут быть нюаньсики на уровне архитектуры проца, кмк: L2 кэш же шарится между ядрами, во всяком случае у некоторых intel, почему бы не выполнять CAS через него
и intel же рассказывают, что они контрибутят в jvm по части оптимизаций для своих процов

Aleksei
22.05.2017
16:43:34
А чо там Ибрагим то опять активизировался?


Daniel
22.05.2017
16:43:52
Оптимизации на уровне процов вам нужны будут примерно никогда
хотя мож кто-то и работает в конторах, где стоимость оптимизации хардварно специфичного кода оправдывает все (с учетом того, что железо у вас будет меняться относительно быстро, чуть режем чем рождаются новые js фреймворки).
Сегодня тюнили пропускную способность под одно железо, через полгода нам привезли новое с другими характеристиками.
Возможны отдельные моменты связанные с нума и прочее
но опять же, это требует понимания принципа, но не ковыряния в деталях.
В jvm это спрятано глубоко, имеет специфичные реализации для разных архитектур, может меняться время от времени.
Там свои оптимизации и ваши попытки что-то сделать на таком уровне не приведут к результату (с вероятностью около 1).
Что вы можете делать. Мониторить ресурсы приложения, чтобы знать где проблема и принимать решения либо оптимизировать логику приложения, либо купить железа потому что оптимизировать дорого/некуда.


Denis
22.05.2017
16:45:37

Aleksei
22.05.2017
16:48:09

Daniel
22.05.2017
16:49:27
https://github.com/olafurpg/scala-repos/blob/1225fa10eb67934d7c15fec745ceefe43005533b/repos/PredictionIO/data/src/main/scala/io/prediction/data/api/EventServer.scala#L334-L385
спрей роуты в хаскопитоновском стиле %)

Wystan
22.05.2017
16:58:45
Откройте реддит, там новости с каждым днем смешней и смешней

Aleksei
22.05.2017
16:59:06
А тебя не IVAN зовут?

Google

Wystan
22.05.2017
16:59:25
Не, иван -это не я.
Или все русские - иваны?

Aleksei
22.05.2017
16:59:40
а то знаете это самый крутой вопрос
do you know someone called IVAN, he is a scala developer?

Wystan
22.05.2017
16:59:58
Какой правильный ответ?
Ничо се. А чо еще спрашивает?
Ибрагим не работает на эту компанию я специально спрашивал

Nikolay
22.05.2017
17:00:50

Aleksei
22.05.2017
17:00:58
я хз чо это он вдруг
типа удаленка есть туда сюда
хай лоад во все щели

Wystan
22.05.2017
17:01:15
А чо за контора?

Aleksei
22.05.2017
17:01:27
не говорит

Wystan
22.05.2017
17:01:38
Java?

Aleksei
22.05.2017
17:02:28
хз
завтра узнаем
но если четсно, то что то как то стремно

KrivdaTheTriewe
22.05.2017
17:06:43

Aleksei
22.05.2017
17:06:57
А вот и Иван видимо )

Daniel
22.05.2017
17:07:08
или Ибрагим

KrivdaTheTriewe
22.05.2017
17:07:37
мне тоже пишет