
Марк
06.11.2016
19:03:45
ты вызываешь python script.py
питон сперва читает файл в память.
потом парсит и создает аст. на этом этапе ловятся синтакс еггоги
если всё ок, идёт обход аст и генерация байткода. на этом этапе строки и прочие литералы как [1, 2, 3] превращаются в константы в объекте кода
потом запускается евал цикл, который обрабатывает байткод. на этом этапе происходит вызов list()
т.е. вот тот литерал создался один раз и в бинарном виде
а лист() вызывается в рантайме и выделяет память каждый раз со всем багажом затрат

Zart
06.11.2016
19:06:00

Марк
06.11.2016
19:08:28

Zart
06.11.2016
19:08:52
а вбить в поиск и найти сразу пачку не?

Google

Марк
06.11.2016
19:09:08
В телеге? Тут же хуй найдешь

Zart
06.11.2016
19:09:10
но там про питона не будет

Марк
06.11.2016
19:11:27

Korolll
06.11.2016
19:11:40
Ребят подскажите, как в Django логировать все запросы к серверу в файл?

Zart
06.11.2016
19:12:06
нгинкс/апач/все вебсерверы умеют логгировать запросы, включая статику

Korolll
06.11.2016
19:15:01

Zart
06.11.2016
19:15:17
плохая мысль
тем более что опять же вебсервера умеют отдавать статистику в хедерах при настройке

Vadim
06.11.2016
19:16:41
Ну для дебага – ок. Если в голой джанге – копай в сторону settings.LOGGING.
Хочется человеку выстрелить себе в ногу – почему бы не помочь?

Zart
06.11.2016
19:17:38
не, логи приложения это тоже важная и нужная штука, но она решает другую проблему
и туда не попадают "все запросы"

Google

Alexandr
06.11.2016
19:19:02

Vadim
06.11.2016
19:19:24
@alexstav, кхм… Удобно)

Korolll
06.11.2016
19:21:28
и туда не попадают "все запросы"
Я понимаю что не все, у меня там только запросы к api. Я пришёл к мысли, что мне нужен дополнительный лог на Джанго, когда решал свою предыдущую задачу.

Zart
06.11.2016
19:22:15
а..
такие задачи обычно решаются через мидлварь

Alexandr
06.11.2016
19:22:43
Вопросик: какую либу покурить для простенького UI на питоне?

Denis
06.11.2016
19:22:50
tkinter, гы

Zart
06.11.2016
19:23:06
http://stackoverflow.com/a/4839713/356274 пример

Vadim
06.11.2016
19:23:18
Ну… Kivy :)

Zart
06.11.2016
19:23:31
киви? простенькое уи? мда

b0g3r
06.11.2016
19:23:41
надеюсь это щас была ирония)

Alexandr
06.11.2016
19:23:57
Мне нужно элементарное: вывод картинок и пара кнопок, завязанных на функции.

53r63rn4r
06.11.2016
19:24:04
Киви там ебануться можно

Alexandr
06.11.2016
19:24:20
:D

Zart
06.11.2016
19:24:44
ткинтер сойдет, да. тем более он в комплекте

Korolll
06.11.2016
19:25:06

Alexandr
06.11.2016
19:25:26

Vadim
06.11.2016
19:25:41
Интересно, а что бы вы сказали на моё предложение pyqt? :D

Google

Denis
06.11.2016
19:26:07
Ну норм, кеды фарева

53r63rn4r
06.11.2016
19:26:09
На пайкьте меньше граблей, чем на киви

Zart
06.11.2016
19:26:12

53r63rn4r
06.11.2016
19:26:20
Киви мне показался крайне неудобным и геморным

b0g3r
06.11.2016
19:26:59
так и не решил что лучше - смешивать написание или нет

Vadim
06.11.2016
19:27:19
Мне весь UI на питоне кажется унылым :(

b0g3r
06.11.2016
19:27:33
qt вполне себе

Vadim
06.11.2016
19:27:47
Не-не, я не буду обсуждать pep8. Опять будете троллем обзывать :(

Korolll
06.11.2016
19:28:13
Ещё такой вопрос, кто-нибудь писал real-time без использования сокетов. То есть на сервер отправляем запрос и отдаём по событию в бд. Если да, то не подскажите, как сделать так, чтобы 1 вотчер не занимал 1 воркер

b0g3r
06.11.2016
19:28:14
пробелы vs табы, ага

53r63rn4r
06.11.2016
19:28:53

53r63rn4r
06.11.2016
19:28:54
:D

Korolll
06.11.2016
19:28:59
Ответ отдаём*

Zart
06.11.2016
19:29:20
какое отношение сокеты имеют к рилтайму...

Vadim
06.11.2016
19:29:37
Почему бы не использовать вебсокеты?

Korolll
06.11.2016
19:30:14
Сокеты*

Vadim
06.11.2016
19:31:30
Какие браузеры не поддерживают socket.io?

Google

Zart
06.11.2016
19:31:36
какое отношение вебсокеты имеют к сокетам...

Vadim
06.11.2016
19:31:43
Ну… Можно повесить условный post_save сигнал на базу/таблицу и проверять, кому это надо отправить.
@zartsoft, считай, что я телепат :D

Zart
06.11.2016
19:31:59
тсс

Korolll
06.11.2016
19:32:03

Zart
06.11.2016
19:32:15
я пытаюсь заставить человека выучить терминологию, чтобы его в другой раз понимали нетелепаты

Korolll
06.11.2016
19:36:11

Vadim
06.11.2016
19:36:49
Если произошло событие, то ты с сервера 1 инициируешь запрос на сервер 2

Admin
ERROR: S client not available

Zart
06.11.2016
19:38:19
он хочет лонг поллинг чтоль?

Vadim
06.11.2016
19:38:33
Я пока не понял :)
Но, думаю, он не хочет лонг поллинг. А почему, не ответил.

Korolll
06.11.2016
19:39:33

Zart
06.11.2016
19:41:11
а нгинкс тогда что... *легкое охуение*

Vadim
06.11.2016
19:41:55
В случае с веб сокетами можно использовать что-то типа tornadio, django-socketio или аналоги. Можно почитать про socket.io.
Если хочется позаморачиваться, то можно при эвенте в базе делать запрос на сервер 2.

Korolll
06.11.2016
19:42:50
Я точно не знаю, но вроде Django не может инициировать ответ без запроса

Vadim
06.11.2016
19:43:12
manage.py команда, например?

Korolll
06.11.2016
19:45:10
Команда manage.py сама по себе никак не влияет на клиента

Vadim
06.11.2016
19:45:24
Я не понял вопрос.

Korolll
06.11.2016
19:49:01
Я не понял вопрос.
Ну то есть я имел ввиду, что мы не можем получить ответ от сервера не отправив туда запрос. То есть я не понял каким образом клиент получит инициированный на сервере ответ.

Google

arisu
06.11.2016
19:49:21
Никак

Vadim
06.11.2016
19:49:54
Сервер с БД что-то в ней делает, потом инициирует запрос на сервер 2.
Так работает real time update в некоторых соц.сетях.

Korolll
06.11.2016
19:50:38
Так а к клиенту, как это поподает

Vadim
06.11.2016
19:51:10
А теперь давай с самого начала: что ты хочешь сделать?

Korolll
06.11.2016
19:59:09
А теперь давай с самого начала: что ты хочешь сделать?
Я хочу сделать real-time без веб сокетов (потому что мне лень внедрять новые зависимости и проект не коммерческий). Самое просто решение это отправлять на сервер запрос и как только что-то происходит в бд отправлять всем клиентам заинтересованным в обновлённой информации ответ. Но тут есть две проблемы под каждого клиента выделяется, как минимум 1 вокер, и nginx, gunicorn, да и большинство браузеров так и норовят закрыть соединение по таймингу. Внимание вопрос, есть ли способы кроме двух выше перечисленных и отправления запроса раз в n секунд, для решения моей проблемы

Zart
06.11.2016
20:00:35
человек ведь даже не понимает что такое рилтайм -_-

Vadim
06.11.2016
20:00:46
Если клиент – браузер, то я бы использовал веб сокеты и не пытался придумать велосипед.

Zart
06.11.2016
20:01:21
в общем его не устраивает хттп

Vadim
06.11.2016
20:01:37
Ну… Можно написать свой клиент и свой протокол ;)
Только вот зачем?…

Zart
06.11.2016
20:02:14
чятег?

Vadim
06.11.2016
20:02:26
Скорее всего

Korolll
06.11.2016
20:03:56

Zart
06.11.2016
20:05:03
лучше не употреблять выражение "в режиме реального времени", потому что у этого термина очень специфическое значение
в которое веб почти не попадает

Korolll
06.11.2016
20:06:24

Zart
06.11.2016
20:07:24
наверное. по опыту работы с вебсокетными решениями - в локалочках они еще ок работают. в инете с задержками - бесят как пиздец

Korolll
06.11.2016
20:08:03

Vadim
06.11.2016
20:08:58
Ну если мы говорим про веб.апп, то здесь надо включить разум и вебсокеты. Я не вижу в этом проблему. Изменил параметр – он перерисовался на фронте и отправился в базу. Изменился параметр в базе – отправил на фронт и перерисовал. Если мы говорим про общий случай, то на задержки до 200-500мс очень насрать.
За сим откланяюсь, повторять одну и ту же мысль пять раз надоело :)
Эта группа больше не существует