
Fey
25.02.2018
17:38:09
можно конечно явно для каждой транзакции указывать юзера как вот в той репе
но возникла мысль, нельзя ли установку переменной просто убрать в плаг

john
25.02.2018
17:38:43
ну вообще кастомно можешь подключаться хоть к другой репе, хоть с другим юзером

Dmitry
25.02.2018
17:39:11
@feymartynov Если сессия - это 1 к 1 соединение, то не гарантирует, потому что одним соединением могут пользоваться разные http-запросы.

Google

john
25.02.2018
17:39:15
к другой репе- в смысле к другой базе

Fey
25.02.2018
17:40:19
точнее конкуррентно

Alex
25.02.2018
17:41:30
может лучше БД на домены разбить?

Dmitry
25.02.2018
17:41:41
@feymartynov Одновременно нет. Только если первый делает первую транзакцию, потом вторую, то между первой и второй другой http запрос может использовать тоже соединение.

Fey
25.02.2018
17:42:01
ясненько, спасибо
значит надо явно на каждую транзакцию переключать контекст

Dmitry
25.02.2018
17:45:23
@feymartynov Было бы по-другому, тогда бы кол-во одновременных запросов, которые приложение может обрабатывать ограничивалось бы кол-вом возможных соединений к базе данных.... Это очень дорогой боттлнек

Alex
25.02.2018
18:03:27
вложенные обойдутся уже без "переключения контекста"

Dmitry
25.02.2018
18:10:42
А в чем суть? Нужно понимать какие запросы выполнялись в БД для каждого http запроса?

Alex
25.02.2018
18:12:48
там установка переменной делается current_setting('app.user')); в транзакции. интересно а транзакции от разных юзеров выполняющиеся параллельно не встанут ли в очередь на ее изменение под себя?

Fey
25.02.2018
18:13:50
разве постгрес поддерживает вложенные транзакции?

Google

Fey
25.02.2018
18:14:16
прям как автономные транзакции в, прости господи, оракле?

Alex
25.02.2018
18:20:41

Fey
25.02.2018
18:21:58
если я правильно помню, там в дикт процесса засаживается флажок, что in_transaction
и по нему уже для вложенной транзакции ничё не делается
если всю обработку хттп-запроса обернуть в одну большую транзакцию, тогда как раз соединение будет заблокировано и будет вот этот ботлнек, про который писал Dmitry

Alex
25.02.2018
18:30:30
да и вообще может делать несколько переменных для каждой таблицы свою current_setting('app.user.messages') current_setting('app.user.comments') и тд

Fey
25.02.2018
18:49:11
да, нет смысла
там SET_CONFIG('app.user', $1, TRUE) – вот это последнее TRUE значит, что оно на транзакцию устанавливается

Alex
25.02.2018
20:55:28
Вообще, для меня обычной выглядит ситуация, когда коннекты из пула выдаются на транзакцию. Две последовательных транзакции могут быть выполнены разными коннектами, на иное я бы не полагался

Dmitry
25.02.2018
20:56:11
@nwalker Ага.

Alex
25.02.2018
20:59:12
У нас вообще перед поцгресом стоит pgbouncer в режиме transaction pooling, что окончательно убивает идею привязки к сессии

Den
26.02.2018
06:03:35
/stat@combot

Combot
26.02.2018
06:03:35
combot.org/chat/-1001061355522

Dmitry
26.02.2018
11:19:11
from([..., q] in query, where: q.inserted_at < ^dt)
Что это обозначает и почему это компилируется?

Alex
26.02.2018
11:19:41
а многоточие там так и есть?

Dmitry
26.02.2018
11:20:38
Пиздец....
https://hexdocs.pm/ecto/Ecto.Query.html#module-query-bindings
Не, ну кто подумать то мог

Google

Dmitry
26.02.2018
11:20:52
Ебанаты

Alex
26.02.2018
11:22:54
строгие позиции в результатах запросов

Dmitry
26.02.2018
11:23:28
Наверное из Руби взяли
Я понятия не имею как там
Но до такого додуматься как можно то?

Evgeny
26.02.2018
13:55:38

Dmitry
26.02.2018
13:56:53
Это про ...
ES6 синтаксис в эликсире

Evgeny
26.02.2018
13:57:45
я нихуя не понял, но да, как они так могли?!

Dmitry
26.02.2018
13:57:59
Многоточие

Evgeny
26.02.2018
13:58:58
я понял, что про многоточие, не понял что оно значит. и даже понимать не хочу.

Dmitry
26.02.2018
14:05:38
Using ... can be handy from time to time but most of its uses can be avoided by relying on the keyword query syntax when writing queries.

Dmitry
26.02.2018
14:06:10
Звучит как bad praxis.

Buckler
26.02.2018
14:21:36
Hello, Татьяна!
Please, calculate:
16+59=...
If you don't answer - you'll get banned from the channel...
Good luck!

عاصم بن حارث
26.02.2018
14:29:12
111

Mi
26.02.2018
14:29:25
аааааааа
аааа

Vladimir
26.02.2018
15:19:04
может надо, чтобы бот не только попросил вычислить выражение, но и написать его? вдруг именно в этом путаются? :)

Andrey
26.02.2018
15:27:20
но и написать его в обратной польской нотации
чтоб повысить градус серьёзности

Google

Alexey
26.02.2018
15:29:54

Vladimir
26.02.2018
15:30:48
Я скорее про программистов, которым сказали посчитать. Они и посчитали. Но нигде не написано, что это ещё и как ответ ввести надо, да ещё и текстом. :)

Admin
ERROR: S client not available

Vladimir
26.02.2018
15:31:33
Короч я за правильно поставленнное ТЗ =)

Никита
26.02.2018
15:53:29
Ну пральна. Посчитал, а результат вывел, по дефолту, в консоль.

Evgeny
26.02.2018
15:58:25

Dmitry
26.02.2018
16:43:04
Да я чёт хотел доделать бота, только руки не доходят
Там по плану конфигурация в личке, несколько типов капчи и локализация
Кстати все уже есть, кроме конфига в личке
Поэтому есть разные языки, только выбрать нельзя ( ну как всегда )

Alex
27.02.2018
13:35:53
today i remembered: после with нельзя ставить перенос строки
отношения парсера с переносами строк не первый раз меня удивляют

Никита
27.02.2018
13:37:24
\
можно поставить
после with

Alex
27.02.2018
13:37:38
вот зачем, зачем они приделали синтаксис
делали бы лисп сразу
\
спасибо, но я уж переживу

Никита
27.02.2018
13:39:35
mix format же есть. зачем ручками то)

Alex
27.02.2018
13:39:58
про mix.format я тут уже писал

Google

Alex
27.02.2018
13:40:11
я отказываюсь добровольно его использовать

Dmitry
27.02.2018
13:49:32
Я вообще стараюсь не использовать with с некоторых пор

Dmitry
27.02.2018
13:49:43
@Virviil Почему?

Dmitry
27.02.2018
13:50:28
Не очень наглядно, лучше рефакторить
Самая большая дырка - нету предыдущих переменных в error кейсах вложенных
К примеру на первом этапе фетчишь юзера из бд, на втором делишь на ноль

Dmitry
27.02.2018
13:52:03
@Virviil Мне кажется тут ошибка, что ошибка не несет все необходимое.

Dmitry
27.02.2018
13:52:20
И в логе не можешь написать «для такого юзера на ноль не делится»
Потому что юзера нету

Никита
27.02.2018
13:52:41
так надо ждать {:ok, user}
а если юзера нету - такое не вернется

Dmitry
27.02.2018
13:52:57
Я к примеру, всегда стараюсь в {:error, error} - в error передать все необходимое об ошибке.