
Sergey
17.10.2018
19:05:14
Я спрашиваю

Anton
17.10.2018
19:11:43

Lupsick
17.10.2018
19:56:02
еееееее

Kirill
17.10.2018
22:30:08
С вакансиями та же тема. В провинциях РФ толком не найти работу джуну

Google

Alex
17.10.2018
22:49:47

Kirill
17.10.2018
22:58:35

Alex
17.10.2018
22:58:45

Kirill
17.10.2018
22:58:53
1млн+

Alex
17.10.2018
22:59:01
вот именно что у тебя миллионник

Amir
18.10.2018
01:27:47
Ребята помогите
Рубокоп достал
Хочет чтобы я это исправил
filename = if partner.physical?
¦ ¦ ¦ ¦ ¦ ¦ ¦if plea_type.in?(%w[1 2 3])
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka1.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦else
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka3.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦end
¦ ¦ ¦ ¦ ¦ ¦else
¦ ¦ ¦ ¦ ¦ ¦ ¦if plea_type.in?(%w[1 2 3])
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka8.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦else
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka6.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦end
¦ ¦ ¦ ¦ ¦ ¦end
108 col 24 warning| Style/IfInsideElse: Convert if nested inside else to elsif.
но мне так код более понятен, че хочет то не пойму
так мне кажется код немножно уродский
но рубокопа это устраивает
filename = if partner.physical?
¦ ¦ ¦ ¦ ¦ ¦ ¦if plea_type.in?(%w[1 2 3])
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka1.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦else
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka3.docx'
¦ ¦ ¦ ¦ ¦ ¦ ¦end
¦ ¦ ¦ ¦ ¦ ¦elsif plea_type.in?(%w[1 2 3])
¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka8.docx'
¦ ¦ ¦ ¦ ¦ ¦else
¦ ¦ ¦ ¦ ¦ ¦ ¦'zayavka6.docx'
¦ ¦ ¦ ¦ ¦ ¦end

Felix
18.10.2018
03:46:30
А ниче что условия одинаковые?)

Vasyl
18.10.2018
05:13:44
Почему одинаковые? Проверяется пара условий каждый раз, итого 4 варианта развития

ShadoWalkeR
18.10.2018
05:20:20
Господа, а никто не задавался следующим вопросом - есть ли разница между:
_tmp_arr = system(..).split("\n")
_tmp_arr.each do .. end
и system(..).split("\n").each do .. end
По идее же во втором случае он должен один раз вызвать цепочку команд, получить временный массив и по нему работать итератором each

Roman
18.10.2018
05:38:47

Google

Roman
18.10.2018
05:39:21
хотя разница в том, что после этого блока и после прохода GC в памяти останется массив

F
18.10.2018
06:03:58
Какая алгоритмическая сложность (big O) у этого кода User.all.any? { |u| u.interval.overlaps?(self.interval) }?

ShadoWalkeR
18.10.2018
06:05:21

F
18.10.2018
06:05:38
неужели O(n)?

I
18.10.2018
06:13:28

F
18.10.2018
06:13:55

I
18.10.2018
06:14:06
Ну просто .all - это выгрузить всех
Мб проще это в where сделать так-то
И тогда база быстрей обработает

Roman
18.10.2018
06:15:34
надо в базе расклеить интервал на start и end и сделать where start > qstart or end < qend

I
18.10.2018
06:21:56
Ага

Dima
18.10.2018
06:53:27
неужели O(n)?
Точно O(n) Потому , что количество Users.all это n. C ростом количества пользователей растет количество повторений any?. В лучшем случае будет найдет первый пользователь у которого interval. overlaps? значит алгоритм сработает за 1 повторение: O(1), а в худшем случае будет пройдет весь массив n повторений O(n).
Т.е. можно смело сказать что interval.overlaps? будет вызываеть O(n) раз. А уж как функционирует interval.overlaps это не известно. Возможно у него самого экспоненциальня сложность. Тут гарантий нет.

F
18.10.2018
06:56:23


Dima
18.10.2018
06:58:04
overlaps это метод с rails
да. замечаение я написал к тому, что логически мы предпологаем что interval.overlaps? оптимизированно решен. Но всякое может быть, по этому точно заявлять про O(n) не разобравшись в коде overlaps? я бы не стал.
точно я тоже хотел запостить.
В Ruby уязвимость, связанная с OpenSSL — нужно срочно обновиться [CVE-2018-16395].
На версиях 2.4 и 2.5 достаточно обновить gem openssl.
На Ruby 2.3 придется обновлять все целиком.
http://amp.gs/hbej

Google

Ann
18.10.2018
06:59:13
превьюхи не завезли, короч
ага, спасибо

Roman
18.10.2018
07:00:37
опять openssl... решето
ещё вчера в libssh cve было
прям серьезная дыра, вход без пароля

Alex
18.10.2018
07:10:58

Vlad
18.10.2018
08:41:46
Ребят, а когда ближайшая большая конфа в России / Белоруссии?

Anton
18.10.2018
08:44:13
Была 2 недели назад
В Минске в следующем году
В питере летом будет вроде

Vlad
18.10.2018
09:07:35
Окей, у меня есть время ?

Nikita
18.10.2018
09:58:32
делаю permit(:requested_features) и они все равно блокируются
С другими полями все работает

I
18.10.2018
09:59:22
а что внутри?

Nikita
18.10.2018
09:59:28
Массив
Бля

I
18.10.2018
09:59:36
понял, да?)

Nikita
18.10.2018
09:59:57
Да

Google

Nikita
18.10.2018
09:59:58
Спасибо
Фейспалм

Dmitry
18.10.2018
10:36:52
permit(data: []) вроде надо

Aleksandr
18.10.2018
11:02:38
привет. слушайте, не знаете чаты, где можно поискать qa-шника?

rabbitkate
18.10.2018
11:11:39

Aleksandr
18.10.2018
11:11:56
спасибо!

Tim
18.10.2018
11:42:53
кто-нибудь вникал в работу сайдкика? почему один и тот же код в нём личит, а в консоли (под продовским энвайронментом) нет?
ну условно, Job.perform_now(args) не личит, а Job.perform_later(args) личит.
Известно, что в Job метамагией гем создаёт свои классики, а ещё есть много взаимодействия с бд

Anton
18.10.2018
11:44:05
что значит личит?

Dmitry
18.10.2018
11:44:37
наверное течёт?

Tim
18.10.2018
11:46:03
Вот процент memory usage на стейджинге после perform_later с одним и тем же аргументом
5.8 7.5 10.3 12.0 14.7 15.2 17.7 19.4 18.6 19.0 19.8 24.1 25.8 26.5 28.0 28.4 29.6 30.4 30.4 30.4 30.5 31.4 32.0 32.0 32.0 32.1 33.6 36.5 36.4 37.0 37.0 39.7 39.7 41.6 41.5 41.5 40.8 40.1

Anton
18.10.2018
11:46:14
ну ок
а перформ лейтер?

Tim
18.10.2018
11:46:26
perform_now
17.4 18.7 18.7 18.7

Anton
18.10.2018
11:47:10

Tim
18.10.2018
11:47:34
top -p ...

Anton
18.10.2018
11:47:45
нет, я про консольный код

Google

Tim
18.10.2018
11:48:41
1.times {[1087].each {|id| Job.perform_now(mailbox_id) }}
(такая структура потому что до этого тестил с разным количеством повторений и с разным набором айдишников

Anton
18.10.2018
11:48:58

Tim
18.10.2018
11:49:08
на стейджинге

Anton
18.10.2018
11:49:08
и что конкретно по памяти ты тестировал?

Tim
18.10.2018
11:49:27
да
ну и я смотрел usage именно сайдкиковского процесса

Anton
18.10.2018
11:49:44
и ты память от куда смотрел?

Tim
18.10.2018
11:50:07
в плане? на сайдкиковском сервере запускал top -p ...