@ru_python

Страница 5905 из 9768
Pavel
12.07.2018
09:59:27
какое число в timestamp являются годом , или как лучше сравнить дату, чтобы она была в промежутку от сегодня до года вперед?

Ilya
12.07.2018
10:01:13
https://www.bl2.ru/programing/timestamp.html

держи калькулятор

Bohdan
12.07.2018
10:02:06
timestamp - количество секунду посчитай, сколько секунд в году

Google
Ruslan
12.07.2018
10:02:11
какое число в timestamp являются годом , или как лучше сравнить дату, чтобы она была в промежутку от сегодня до года вперед?
from datetime import datetime cur_date = datetime.now() next_year = datetime(2019, 1, 1) my_date = datetime(2018, 10, 10) if cur_date <= my_date <= next_year: print(True) else: print(False)

Jentry
12.07.2018
10:02:52
@Saluev чо там с вебсокетами, выбрал решение?)

Бензофуран
12.07.2018
10:04:02
Питон же не яп
За такое высказывание в чате питонистов могут и закидать камнями

Бензофуран
12.07.2018
10:07:51
питонами
Троянами-стиллерами-майнерами-бэкдорами-криптолокерами-вымогателями

Tigran
12.07.2018
10:08:19
@Saluev чо там с вебсокетами, выбрал решение?)
Да я остановился на SSE с flask+gunicorn+gevent.

Ляман
12.07.2018
10:08:32
Питон же не яп
зато HTML ЯП

Denis
12.07.2018
10:09:00
define ЯП

Бензофуран
12.07.2018
10:09:30
зато HTML ЯП
Вот сейчас действительно смешно было))

Denis
12.07.2018
10:10:39
https://m.habr.com/post/231897/

Ляман
12.07.2018
10:10:49
нет язык гипертекствой разметки

Google
Ляман
12.07.2018
10:10:54
там 2+2 нельзя сделать

Tigran
12.07.2018
10:10:55
https://m.habr.com/post/231897/
ну камон, это была ирония

Denis
12.07.2018
10:11:06
В статье утверждается, что да

Jentry
12.07.2018
10:11:26
Да я остановился на SSE с flask+gunicorn+gevent.
У тебя уже большая кодовая база? Почему не sanic, например?

Бензофуран
12.07.2018
10:11:48
Как вы относитесь к PHP?

Denis
12.07.2018
10:12:03
Потому что саник не продакшен реди?

Jentry
12.07.2018
10:12:28
Потому что саник не продакшен реди?
Норм он в продакшене себя чувствует

Cykooz
12.07.2018
10:12:29
У тебя уже большая кодовая база? Почему не sanic, например?
Переписывать всё на асинхронку ради веб-сокетов - не совсем разумная идея. Хотя gevent - тоже так себе идея.

Бензофуран
12.07.2018
10:12:54
Пиши сервер на селектах))

Jentry
12.07.2018
10:13:05
Не, если дофига написано, то однозначно gevent, а так-то вебсокеты это достаточно тяжелое основание начинать на асинхронщине сразу

Tigran
12.07.2018
10:13:13
У тебя уже большая кодовая база? Почему не sanic, например?
Ну не то чтоб прям большая, но она уже есть. И мне кажется, с фласком будет легче, потому что он сильно популярнее. Сейчас все проблемные места я вручную ковыряю с gevent, что мне тоже в целом нравится.

Когда я начинал, я не думал, что что-то в таком духе будет)

Но потом оказалось, что мои расчёты на бэкенде слишком медленные, и их нужно вынести в воркеры, а о завершении вычислений удобно было бы сообщать со стороны сервера...

Cykooz
12.07.2018
10:14:39
Релализовать только веб-сокеты сбоку отдельной командой, которая запускает какой нить aiohttp - это не особо сложно. И нет рисков словить "нежданчик" с gevent-ом.

Jentry
12.07.2018
10:15:40
Нежданчик какого рода?
сегфолт, раньше с gevent бывало, он по-хардкору написан с ассемблерными вставками

Tigran
12.07.2018
10:16:08
Cykooz
12.07.2018
10:16:34
gevent - это монки-патч питона, который привязан к версии питона. Обновил питон - словил нежданчик (если не обновил gevent) gevent - это значит у тебя нет чёткого понимания в каком месте твоего кода может произойти переключение контекста, и значит можно словить нежданчик при работе с "шареными" данными в памяти.

Tigran
12.07.2018
10:16:42
Наткнусь на нежданчик - подумаю ещё. У меня в принципе код сервера не должен быть большой (вся сложность в расчётах), могу и переписать.

Jentry
12.07.2018
10:16:47
ваще да, у меня в проде есть gevent, проблем нет, хотя были опасения и основания для них - все работает однако

Google
Tigran
12.07.2018
10:17:52
Шареные данные у меня во внешних хранилищах.

Rostislav
12.07.2018
10:18:28
Я ВЕРНУЛСЯ

Cykooz
12.07.2018
10:18:29
Ну ты ведь не сам напрямую юзаешь модуль socket, что бы чётко видеть где произойдёт его вызов?

Rostislav
12.07.2018
10:18:41
Я ВЫЖИЛ

Tigran
12.07.2018
10:19:09
Ну ты ведь не сам напрямую юзаешь модуль socket, что бы чётко видеть где произойдёт его вызов?
Сам не юзаю, это правда. Но примерно-то я могу себе представить.

О каких шареных данных может идти речь, например?

Cykooz
12.07.2018
10:19:22
Ну вот в этом и трудность, что "примерно"

И сейчас ты например уверен что вызов фукции не переключит контекст. А через месяц поправишь функцию так что она будет переключать контекст и забудешь учесть это в тех местах где она используется

Tigran
12.07.2018
10:20:37
Ммм, кажется, достаточно писать код так, чтобы это было не важно.

Практически как с мультитредингом в нормально поддерживающих его языках.

Cykooz
12.07.2018
10:21:36
Хы, люди в синхронных однотредовых программах умудряются наловить граблей с глобальными переменными, а ты хочешь просто вот так взять и писать код "правильно" для "не явной" асинхронки ?

Denis
12.07.2018
10:21:46
Jentry
12.07.2018
10:22:45
Но в таких языках есть атомики, а в питоне нет
Есть, но лдя Си-кода, можно управление гилом брать на себя

Admin
ERROR: S client not available

Jentry
12.07.2018
10:23:25
гевент частично что-то забирает, кстати, для своих критичных областей

Cykooz
12.07.2018
10:23:38
У него wsgi приложение, оно стейтлесс и сложно получить такие проблемы
После того как там появляется gevent оно превращается в некий аналог wsgi + multi-threads - а это уже само по себе место для граблей

Хотя веб-сокеты через wsgi - это само по себе какое-то извращение. WSGI не проектировался для таких штук.

Google
Jentry
12.07.2018
10:25:57
Да, вчера на этом и закончилась беседа. Мне было только интересно, что было выбрано, через пару недель спрошу про успех)

Tigran
12.07.2018
10:26:09
Но у меня не веб-сокеты, у меня SSE...

Jentry
12.07.2018
10:26:36
Я чот так и не вкурил, что за sse, очередной сокетио и комет?

Cykooz
12.07.2018
10:26:46
Я отсталый "старикан" для меня SSE - это набор инструкций для процессоров

Tigran
12.07.2018
10:27:41
Я чот так и не вкурил, что за sse, очередной сокетио и комет?
Это keepalive HTTP-соединение, которое браузер умеет сам восстанавливать в случае дисконнекта и в которое сервер пишет ивенты когда хочет в специальном формате.

Cykooz
12.07.2018
10:27:42
Такс - Server-Sent Events

Что то вроде long-pulling-а?

Tigran
12.07.2018
10:28:35
Jentry
12.07.2018
10:28:48
Нет не просто, NAT это не пробьет

Tigran
12.07.2018
10:29:08
Мм?

Tigran
12.07.2018
10:29:52
Когда я говорю "браузер умеет сам восстанавливать", я имею в виду "соединяется заново при завершении/обрыве"

Так что вроде бы ничего дополнительно уметь не надо

Jentry
12.07.2018
10:30:41
Коннект же остается
Я понимаю, но каждая железка это поймет? А симметричный нат?

Cykooz
12.07.2018
10:30:42
Наверное это какой то односторонний long-pulling - когда клиент не передаёт свои сообщения на сервер. Только сервер передаёт свои. В этом случае не обязательно закрывать HTTP-конект. Можно просто с сервера посылать чанки, на подобии мультимедиа-стримов.

Tigran
12.07.2018
10:30:55
Denis
12.07.2018
10:31:05
Я понимаю, но каждая железка это поймет? А симметричный нат?
Если нат пропускает обычный ответ от сервера, он и это, очевидно, пропустит

Jentry
12.07.2018
10:32:25
Если нат пропускает обычный ответ от сервера, он и это, очевидно, пропустит
Наивный юноша, все-то просто у тебя. Поэтому voip так плохо работает, поэтому инженерам потребовалось делать ICE и разные схемы со STUN

Google
Jentry
12.07.2018
10:33:20
http2 server push до сих нормально через инет не ходит

Big
12.07.2018
10:41:03
Ребят есть подобия apt-get на windows а то я что-то не нашёл годного

Влад
12.07.2018
10:42:17
Ребят есть подобия apt-get на windows а то я что-то не нашёл годного
Есть. В винде 10. "Магазин приложений" называется.

Страница 5905 из 9768