
Dima
13.09.2017
12:57:03

Nikita
13.09.2017
12:57:22
а у пассажира конкурентная модель такая же как у юникорна чтоли? несколько процессов?
Ruby applications can normally handle only 1 request at the same time. With Passenger this is improved by running multiple processes of the application using pooled application groups. For each request from the incoming request queue, a non-busy (free) application process is selected to handle the request.
For thread-safe Ruby apps it is also possible to enable multithreading, which allows the application processes to concurrently handle multiple requests at the same time – up to the amount of threads configured. In this case, Passenger forwards the request to the instance that is currently handling the least number of requests.
https://www.phusionpassenger.com/library/indepth/ruby/request_load_balancing.html


Alexander
13.09.2017
12:57:41
Puma is the only open-source option for multithreading. Passenger Enterprise provides multithreading support. Unicorn does not support multithreading.

Google

Alexander
13.09.2017
12:57:57
пичаль. только в тырпрайз версии есть многопоточность

Andrey
13.09.2017
19:20:01
Поможет может кто, какие сейчас основные web уязвимости при использовании RoR?
Именно присущие Rails

Vlad
13.09.2017
19:21:21
Дудосер в чате?)

Andrey
13.09.2017
19:22:07
Мм?

Nikolay
13.09.2017
19:43:41
дальше уже разработчики стреляют себе в ногу, имплементя xss, sql injection, etc

Andrey
13.09.2017
19:45:45
Ну с этим конечно поспорить можно
Постоянно находят RCE или Dynamic Render File Upload или Secret session cookie rce

Nikolay
13.09.2017
19:49:10
уверен что ты про ror, а не про гемы?) ну ror, конечно, тоже находят уязвимости, но быстро фиксят

Andrey
13.09.2017
19:50:17
А какая сейчас актуальная последняя версия?

Nikolay
13.09.2017
19:57:24
https://github.com/rails/rails/releases

Anatoly
13.09.2017
21:04:31
Всем привет, но у меня возник слегка нубский вопрос: обычно для сессий используется session_store, т.е. хранится только на клиенте. Соответственно если сесионная кука меняется (пользователь, например, разлонился и залогинился), то на сервере при этом ничего не меняется. Значит симметричный алгоритм, который шифрует сессию (user_id + секретный ключ), который скорее всего RSA, при одном и том же секретном ключе и user_id, может выдать бесконечное количество валидных сесионных кук?

Google

Decadent
13.09.2017
21:07:14

Anatoly
13.09.2017
21:07:39
Я понимаю, вопрос в том, когда только на клиенте - самый частый случай.

Decadent
13.09.2017
21:14:40
Я понимаю, вопрос в том, когда только на клиенте - самый частый случай.
Id сессии состоит из хэшированного значения случайной строки. Случайная строка это текущее время, случайное число от 0 до 1, номер id процесса интерпретатора Ruby (также базирующегося на случайном числе) и строка-константа. В настоящее время не представляется возможным брутфорсить id сессии Rails. В настоящее время MD5 применяется бескомпромиссно, но он имеет коллизии, поэтому теоретически возможно создание разных строк результата с одинаковым хэшированным значением. Но это не влияет на безопасность на сегодняшний день.
http://v32.rusrails.ru/ruby-on-rails-security-guide/sessions

Dan
13.09.2017
21:17:49
вжух

Anatoly
13.09.2017
21:19:16

Decadent
13.09.2017
21:20:15

Anatoly
13.09.2017
21:21:10
Значит сервер может выдать бесконечное количество валидных сесионных кук - верное утверждение?

Decadent
13.09.2017
21:23:27

Anatoly
13.09.2017
21:23:41
Понял, спасибо

Decadent
13.09.2017
21:24:03
Или не кук, в данном случае не важно, где это хранится.

Dima
14.09.2017
04:53:07

Alex
14.09.2017
04:53:51
{}
(предположение)

Dima
14.09.2017
04:59:25
(предположение)
https://github.com/alienhard/SublimeAllAutocomplete#settings
из мануала взял

Alex
14.09.2017
04:59:38
там кусок файла наверняка
я тоже в примеры не пишу полный код
засунь все это в {} и проверь уже.

Dima
14.09.2017
05:01:05

Alex
14.09.2017
05:01:37
да похоже на то.
почему то желание копаться в сорсах у тебя есть, а предположения не строишь.

Alexander
14.09.2017
08:55:58
мне нужно снимать некторые метрики. например сколько раз в сутки выполняется определенный запрос. но не хочу это писать вручную. ньюрелик умеет это? или что лучше использовать?

Google

Nikolay
14.09.2017
08:59:19
умеет
ньюрелик даже бесплатный довольно толковый
а если еще и заплатишь... ?

Alex
14.09.2017
09:01:05

Nikolay
14.09.2017
09:01:29
бешенный, но он стоит того)

Dima
14.09.2017
09:02:02
Технологический вопрос. Какими средствам отслеживюатся TODO: в коде. я использую rubocop в консоле и sublime. Мне интересны best pracitses разработки.
Сейчас в книжке нашел код.

Alex
14.09.2017
09:02:11
rake todo вроде был

Dima
14.09.2017
09:02:53
И там по моему куча ошибок смысловых, код интерпретируется работает, но по моему не так как надо. А тестить сейчас время нет. Я вот это пометил TODO

Anton
14.09.2017
09:03:18
Если нет возможности - я обычно тупо ag TODO делаю и не заморачиваюсь

Dima
14.09.2017
09:04:22

Dima
14.09.2017
09:04:32

Anton
14.09.2017
09:04:49

Alex
14.09.2017
09:07:15

Dima
14.09.2017
09:07:37

Fedor
14.09.2017
09:08:04
или не тут

Google

Anton
14.09.2017
09:08:15

Fedor
14.09.2017
09:08:24
на самом деле это работает примерно так:
1) Пишешь код.
2) Ждешь год-полтора
3) понимаешь, что надо серьезно рефакторить/переписывать функционал
4) Решаешь написать тесты, что бы ничего не сломать
5) Смотришь код и ничего не понимаешь, что это за хрень, какой мудак это писал и как это вообще работает
6) рвешь волосы на попе, что не написал тесты сразу
7) тратишь месяц, что бы понять старый код и покрыть его тестами
8) теперь ты адепт BDD

Dima
14.09.2017
09:10:11

Anton
14.09.2017
09:10:47
ага, просто другая обертка
можешь еще юзать git grep

Admin
ERROR: S client not available

Alex
14.09.2017
09:11:36
мне повезло что с самой первой кодовой базы я работал с говнокодом, быстро к тестам пришел.
Всем советую, это работает ?

Fedor
14.09.2017
09:12:25
мне тоже повезло с говнокодом
хотя, называть это везением и достаточно странно )

Alex
14.09.2017
09:12:57
если для тебя цель - стать эффективным разработчиком то повезло.
просто хороший код как правило редко валится, соответственно его архитектуру уже написали до тебя.
Если пишешь сам - то сначала ты напишешь говнокод, а уже потом будешь учиться как писать не говнокод.

Fedor
14.09.2017
09:15:58
ну удача - это попасть в кампанию, где сразу пишут хорошо и ревьюят хорошо
и тебя сразу научат как надо, и заставят привыкнуть к этому
без боли )

Anton
14.09.2017
09:17:02

Dima
14.09.2017
09:20:29
при работе с текстовыми данными tdd понятет. Интересно как работать bdd/tdd когда работают с UI и чем-то динамическим

Google

Anton
14.09.2017
09:25:20
аналогично, у тебя всегда есть что-то, что принимает какие-то данные и возвращает их
если про bdd говорить, есть капибара, которая “эмулирует” поведение пользователя

Dima
14.09.2017
09:30:58
получается надо депенданси инжекшн везде делать, чтоб подсовывать различные mock и stub
щас погуглю js bdd

Anton
14.09.2017
09:31:37

Dima
14.09.2017
09:32:06

Anton
14.09.2017
09:33:24
ну, там все плохо, как я вижу по коллегам

Dima
14.09.2017
09:35:11

Nikolay
14.09.2017
09:35:39
да ладно вам, js уже не тот, что 3-4 года назад

Fedor
14.09.2017
09:36:55
ну да, теперь ему нужно два компилятора, интерпретатор, пакетный менеджер и компановщик
иначе hello world не взлетит

Dima
14.09.2017
09:37:55

Alex
14.09.2017
09:39:13
в руби ставят end в конце блока(

kolas
14.09.2017
09:40:54
можно {} как в жс