
Vladimir
16.08.2016
15:03:07

Dmitry
16.08.2016
15:03:16
Если ты можешь так на c++ - то тогда ив не туда пришёл вообще

Konstantin
16.08.2016
15:03:22
а, все, вижу выше скинул уже

Google

Dmitry
16.08.2016
15:04:12
Короче все зависит от того насколько параллельно ты можешь сделать с код
Я например - нинасколько

Aldar
16.08.2016
15:09:24
проще тогда уж на go
хотя если плюсы знаешь, подключил какой нить intel TBB и вперед

Konstantin
16.08.2016
15:13:32
я почему и спрашиваю у кого какой опыт положительный есть

Rumata
16.08.2016
15:14:10
зацените тему
nerves

Aldar
16.08.2016
15:14:22
Как числодробилка эликсир наверное не очень хорош

Konstantin
16.08.2016
15:14:23
так то вроде под такие задачи, где данные нужно перегонять из одного в другое, попутно пересчитывая, ложится идеально. типа pipeline тот же самый получается

Rumata
16.08.2016
15:14:27
у нас тип будет про нее расказывать и как они пишут для Эмбедед
систем на элексире

Konstantin
16.08.2016
15:14:49

Google

Rumata
16.08.2016
15:15:00
http://nerves-project.org/
на митапе в берлине

Konstantin
16.08.2016
15:15:46
на митапе в берлине
блин, ну тут большинству далековато я боюсь ) а трансляции не будет никакой?

Rumata
16.08.2016
15:15:56
я могу заперескопить

Konstantin
16.08.2016
15:16:07

Rumata
16.08.2016
15:16:23
я уже делал в прошлом правда никто не подконекивался но в этот раз по грамотному сделаю
с айона камеры
думаю по лучше будет

Konstantin
16.08.2016
15:18:00
http://www.meetup.com/Elixir-Berlin/
оно?

Rumata
16.08.2016
15:20:59
да

outluch
16.08.2016
16:38:18
Привет всем, у меня тут вопрос, который я не понимаю как нагуглить
Дано:
Приложение API + frontend написанный на каком нить фронтенд фреймворке
простое приложение: есть список итемов в базе данных.
/api/items - json с итемами
POST /api/items - создает итем
На фронтенде список с итемами и поле для ввода нового итема с кнопокй послать.
Как обрабатывать создание итема на фронтенде? шлем запрос POST. Затем шлем GET чтоб получить новый список итемов и обновить список?
Меня вот эта перезагрузка всего списка (или среза, не суть) вымораживает.
Есть какие-то варианты\либы\паттерны?
или хотябы дайте слова из англ языка по которым я прочитаю в гугле

Nick
16.08.2016
16:41:01
Нет.
В ответ на POST возвращаем созданный ресурс и на фронте вставляем его в общий список
https://www.ietf.org/rfc/rfc2616.txt
Cmd+F 201
https://httpstatuses.com/201

Dmitry ?
16.08.2016
16:44:58
В общем случае и такое работать не будет, например, если была вставка в середину списка
Тогда придется возвращать что-то дополнительно → логика на клиенте

Евгений
16.08.2016
16:46:03
А если список еще и разбит на страницы...

Google

outluch
16.08.2016
17:24:07
вот вот вот это все да
*странно телеграм на компе не показал эти сообщения, тока с планшета тока что увидел
допустим создается итем, ему бд дает идшник, я хочу его нарисовать. Ну ок я на пост отвечаю из апи созданным итемом. Дальше надо шаблоны на клиенте И так далее итп
логику всю
эх

Can
16.08.2016
18:09:37
Ну смотри
У тебя же будет какая то пагинация
Ещё что то
Не все же сразу ты показываешь
Делаешь Ajax запрос
Возвращает ок
Делаешь запрос на перерисовку страницы и все Збс

Can
16.08.2016
18:10:32
Это из самого простого
Тут как бы баланс
Между тем что ты перерисовываешь и тем сколько ты доп кода пишешь
Можно сделать чтобы присылался только новый
Если ты знаешь куда его надо вставить на фронте
То уставляешь
Если не знаешь то только все перерисовывать

Dmitry
16.08.2016
18:12:27
Все перерисовывать надо полюбовную

Google

Dmitry
16.08.2016
18:12:34
Полюбому*
но через инет гонять все не надо
Получаешь итем и добавляешь в то, что уже на клиенте. А потом все перерисовываешь
Это короче реакт подход

Can
16.08.2016
19:07:47
Моё нубское понимание говорит что там на фронте mvc, у тебя минидб в жс и ты в неё пишешь и обновляешь через биндинги

outluch
16.08.2016
19:13:47
ага как в метеоре ))

Aldar
16.08.2016
19:35:54
Можно использовать uuid и генерить айдишник на фронте

Admin
ERROR: S client not available

Aldar
16.08.2016
19:37:45
а потом можно отправлять пост с этим айдишником
но это конечно надо апи переделывать
и вообще модель

outluch
16.08.2016
20:01:41
ладно понял посоны, спасибо

Aldar
16.08.2016
20:15:05
Кстати реакт быстро такие списки перерисовывает благодаря уникальный айдишникам

Евгений
17.08.2016
07:50:06
Втф, а как же concurrency?
Counter Caching in Phoenix
http://elixirstatus.com/p/OLNu-counter-caching-in-phoenix

Vladimir
17.08.2016
07:59:52
лол :)

Евгений
17.08.2016
07:59:57
Именно

Konstantin
17.08.2016
08:09:31

Евгений
17.08.2016
08:11:39
Точно не знаю, но вероятно норм. Но если тебе надо не каунтер? Ну тогда и статья была бы другая, пожалуй.

Konstantin
17.08.2016
08:27:37
Ну оно по другому просто не делается. Иначе, естественно, два параллельных потока/процесса будут инкрементировать одно и тоже значение и оно изменения на +1, а не на +2.
Надо глянуть какой там sql екто формирует, но стопудово там все это в транзакцию обернуто

Google

Alexander
17.08.2016
08:51:53

Can
17.08.2016
08:57:55
оборачивать надо
или лок ставить

Aldar
17.08.2016
09:58:40

Konstantin
17.08.2016
09:59:31

Евгений
17.08.2016
10:00:44
кароч, когда дело касается счетчиков и race condition, я б такую банальную статью не писал, ибо bespolezno.
печалько, что таких статей дофигища.

Konstantin
17.08.2016
10:02:41
ну а как в rails работает тоже самое?
http://api.rubyonrails.org/classes/ActiveRecord/CounterCache/ClassMethods.html
# For the Post with id of 5, decrement the comment_count by 1, and
# increment the action_count by 1
Post.update_counters 5, comment_count: -1, action_count: 1
# Executes the following SQL:
# UPDATE posts
# SET comment_count = COALESCE(comment_count, 0) - 1,
# action_count = COALESCE(action_count, 0) + 1
# WHERE id = 5
# For the Posts with id of 10 and 15, increment the comment_count by 1
Post.update_counters [10, 15], comment_count: 1
# Executes the following SQL:
# UPDATE posts
# SET comment_count = COALESCE(comment_count, 0) + 1
# WHERE id IN (10, 15)

Dmitry
17.08.2016
10:03:49
Ребят, что то туплю...
Как в if написать сравнение тюпла, если мне важен только первые элемент?!

Konstantin
17.08.2016
10:03:58
В фениксе тоже самое как я понимаю. Во время апдейта записи делается ее лок. Если race condition - остальные участники гонки ждут, пока запись разлочится. Все работает как надо значит

Dmitry
17.08.2016
10:05:14
Т.е функция возвращает {:ok, %tut me vazhno%} и надо в ифе
foo() == {:ok, _}
Что то типо такого

Konstantin
17.08.2016
10:06:51
if elem(tuple1, 0) == elem(tuple2, 0)
?

Dmitry
17.08.2016
10:07:18
Так можно походу
Может проще можно?

Konstantin
17.08.2016
10:07:31
ну в твоем случае:
elem(foo(), 0) == elem({:ok, _}, 0}

Dmitry
17.08.2016
10:07:50
Можно ещё в две строки
Хочу просто в ассерте проверит что функция возвращает :ок и тело