
SpeedHouse
14.05.2017
22:29:13
ясно ясно
спасибо!
последний вопрос

Alexander
14.05.2017
22:29:27
город и страна
Да, лучше база. Тебе же желательно и через год их получить, если понадобится, как понимаю

Google

SpeedHouse
14.05.2017
22:29:34
да. верно
в каком формате лучше хранить это все дело?
hstore, json?
там будут и объекты

Alexander
14.05.2017
22:30:23
Да у реляционных баз есть типы, чем тебе не ок?
hstore, json?
Вроде, это всё устарело, и лучше всего jsonb, насколько помню

SpeedHouse
14.05.2017
22:31:03
ага читал
в pg помойму он есть

Alexander
14.05.2017
22:31:12
Примерно в указанном суммарно нами порядке появлялось на свет
Но я бы в крайнем случае это использовал, если структура действительно динамическая
А так проще по табличкам разбить, если фиксированная. Ну и в случае чего мигрировать схему.

SpeedHouse
14.05.2017
22:32:35
ну да
ага ясно ясно

Google

SpeedHouse
14.05.2017
22:32:49
благодарсвтую
если что напишу еще если можно)

Alexander
14.05.2017
22:33:08

SpeedHouse
14.05.2017
22:34:05
))

Andrey ?
15.05.2017
03:51:14
Не совсем мб по рубям вопрос, но подскажите каких-нибудь решений для мониторинга состояния сервера и приложения. Особенно неплохо, чтобы к нему можно было делать свои чеки (например, орать, если количество свободной оперативки < порога или если в редисе слишком много таких-то ключей) и оно умело слать уведомления в тот же телеграм, либо это не сильно сложно прикручивалось

Александр
15.05.2017
03:52:02
zabbix

SpeedHouse
15.05.2017
03:52:26
ужасная хрень)
возрастом как интернет)
http://www.sixnines.io/
availability badge для сайта

Alex
15.05.2017
03:53:19

SpeedHouse
15.05.2017
03:53:25
не)

Andrey ?
15.05.2017
03:53:31
Вот заббикс как-то больше похож на то, что нужно, еще есть мб что-нибудь похожее?

SpeedHouse
15.05.2017
03:54:16
конкурент у него есть
ща скажу
нагиос
https://www.nagios.org/

Alex
15.05.2017
03:55:12

SpeedHouse
15.05.2017
03:55:42
ничего против пожилого возраста не имею)

Google

SpeedHouse
15.05.2017
03:56:38
/stat@combot

Combot
15.05.2017
03:56:38
combot.org/chat/-1001032697885

Talgat
15.05.2017
04:38:00
Народ подскажите пожалуйста, как оценить стоимость разработки фичи(функционала)
Нужно разработать — views counter (как у Telegram или VK например)
Какова будет стоимость разработки, напишите пожалуйста если кто знает хотя бы примерно:
1. backend (Ruby On Rails)
2. frontend (React + Redux: только десктопная браузерная версия)

Marat
15.05.2017
05:05:05

Slava
15.05.2017
05:26:53

Danny
15.05.2017
06:39:28
всем привет)
Подскажите джем, для отправки сообщений между юзерами)

Igor
15.05.2017
06:41:28
клубничный джем - самое то! (очень странная тенденция, затыкать дыры гемами, не подумав о том, как должна решаться задача)

Yaroslav
15.05.2017
06:43:19
> для мониторинга
datadog ?

Alex
15.05.2017
07:21:53

SpeedHouse
15.05.2017
07:27:22
еще на 3 умножить забыл)

kolas
15.05.2017
07:32:04
на 3.14

SpeedHouse
15.05.2017
07:32:17
ну примерно)

Oleg
15.05.2017
07:39:31
Ещё можно спросить пуст или полон стакан наполовину. Если полон - умножить на 2 ещё раз
Вопрос по многопоточности - если у меня несколько процессов руби создают инстанс модели активорекорда и вызывают метод инкремент над полем одновременно - инкрементнится как надо или может что-то потеряться? Процессы независимы, не шарят друг с другом память. Аналогично могут быть на разных машинах и по сети в базу ходить. Всё будет ок?
Для этого же ведь метод инкремент создан?

Andrey ?
15.05.2017
07:49:38
"field" + 1

Oleg
15.05.2017
07:52:13
Ну то есть если 2 процесса у 2х моделей одной строки в базе вызовут инкремент на 1 - во всех 100% случаев прибавится 2?

Andrey ?
15.05.2017
07:53:27
Запрос вида UPDATE Table SET "field" = "field" + 1 WHERE ID=1;
Если БД это гарантирует

Google

Andrey ?
15.05.2017
07:53:47
То прибавится

Oleg
15.05.2017
07:53:59
Хорошо, спасибо, то что нужно

Andrey ?
15.05.2017
07:54:23
У меня в ноде примерно такое же происходит, 8 процессов могут одновременно инкрементить одну строку, проблем пока не было

Oleg
15.05.2017
07:54:51
Вопрос больше именно про то как активоекорд это сделает

Andrey ?
15.05.2017
07:59:32
Всегда можешь включить логгирование и посмотреть какие АР генерирует запросы)

Nikita
15.05.2017
08:00:22
активрекорд установит новое значение

Oleg
15.05.2017
08:00:35
Отстой

Nikita
15.05.2017
08:00:39
так что будут потерянные обновления

Slava
15.05.2017
08:00:54
вроде бы постгрес лочит запись в таблице когда проходит update (mysql не лочит).
но надо гуглить, могу путать

Admin
ERROR: S client not available

Nikita
15.05.2017
08:01:11
это не относится к делу
да, лочит
но лочит только запись

Slava
15.05.2017
08:02:12
почему не к делу? параллельный процесс не апдейтнет (не инкрементнет) запись, пока она в локе

Amir
15.05.2017
08:02:16
блин ребята, подскажите
как будет такое выражение в руби
qwe &= a == b

Slava
15.05.2017
08:02:39
а, или ты к тому, что он со старым значением апдейтнет?

Nikita
15.05.2017
08:03:02
блокировки не спасут
нужно делать select for update, т.е. делать пессимистичную блокировку
тогда второй процесс не сможет прочитать данные пока первый не отпустит строку

Google

Amir
15.05.2017
08:04:23
$a = $b = 1;
echo $a &= 2; // 0
echo $a = $a && 2; // 1
вот это в руби плиз

Andrey ?
15.05.2017
08:04:28
Действительно, обманул, в АР инкремент не дружит с concurrency

Nikita
15.05.2017
08:04:31
в AR это есть, если что, только еще нужно понимать, что все это будет происходить в транзакции

Andrey ?
15.05.2017
08:04:57
Т.е. он там именно сначала берет значение, увеличивает на единицу, записывает в БД, а не делает инкремент средствами БД

Nikita
15.05.2017
08:05:07
http://api.rubyonrails.org/classes/ActiveRecord/Locking/Pessimistic.html вот дока

Oleg
15.05.2017
08:05:20
Как решить эту проблему в АР?

Nikita
15.05.2017
08:05:35
вот же положила^

Oleg
15.05.2017
08:06:08
Пока писал - уже ответили ?
Да, похоже то что нужно

Nikita
15.05.2017
08:06:54
главное запомни, что в ПГ чтение всегда неблокирующее

Oleg
15.05.2017
08:10:06
У меня кейс такой - 100500 потоков вычитывают из базы данные, на каждую строку генерят объект, потом происходит много магии приложения, некоторые объекты меняют некоторые свои свойства и то на какое значение они изменились - нужно записать в базу. А потом все процессы дружно обновляются из базы и всё начинается сначала
Спасибо за советы

Andrey
15.05.2017
08:11:17
кто может подсказать по ошибке ActiveRecord::RecordInvalid ( Validation failed: translation missing: en.errors.messages
Вываливается, когда пытаюсь сохранить картинку. Локально работает без ошибок, а на сервере падает. Использую CarrierWave+MiniMagick

Andrey ?
15.05.2017
08:12:13
Полный текст?
Ошибки

Andrey
15.05.2017
08:12:34
validation failed: Preview image translation missing: en.errors.messages
в файл локали добавлял строку с переводом
ошибка остается, просто текст другой)

Andrey ?
15.05.2017
08:13:20
en.errors.messages - дальше там ничего нет?
После messages

Andrey
15.05.2017
08:13:30
неа
нашел в чем ошибка. требуется еще ImageMagick для преобразований