Anonymous
кто создавал екземпляры вм на гугл клауд?
Kirill
Мне бы гарантии не потери, а не скорость)
7 лет развиваю проект где используется кластер реббитов. И слово "гарантия" в этом контексте я уже давно не использую (хотя конечно есть подозрение что это косячит Celery + haproxy для балансировки нод реббитов)
Promise<>
def rosen_der(x):
xm = x[1: -1]
xm_m1 = x[: - 2]
xm_p1 = x[2:]
der = np.zeros_like(x)
der[1: -1] = 200 * (xm - xm_m1 2) - 400 * (xm_p1 - xm 2) * xm - 2 * (1 - xm)
der[0] = -400 * x[0] * (x[1] - x[0] ** 2) - 2 * (1 - x[0])
der[-1] = 200 * (x[-1] - x[-2] ** 2)
return der
как мне вставить нужную мне туда функцию?
Phil
Promise<>
Oleg
react native
ИМХО, для REST джанго вообще не надо использовать, слишком массивная, да и не для этого делалась
Anonymous
Tishka17
Kirill
Есть там такая, но слава-богу мы не доросли до таких масштабов
Tishka17
А то меня тут на работе пугают этим словом
Tishka17
Правда у нас нет рэббита насколько знаю
Kirill
Поэтому ничего про неё сказать не могу
Kirill
В контексте "кластер реббитов + haproxy + celery" - очень легко словить ситуацию когда таска тупо не ушла в реббит, т.к. конект до него уже отвалился, а celery про это ничего не знает. Помогает включение режима подтверждения доставки, но это в 100-1000 раз увеличивает время отправки таски в реббит
Anonymous
кстати раз ты с ней работал что за либа?
Anonymous
ну всмысле для связки кролика с питоном
Kirill
Я через Celery работаю, а она юзает по сути свою же либу (автор тот же) amqp
Anonymous
стоп celery стучится в rabbit?
Kirill
Есть ещё pika - её использую там где не нужен celery
Anonymous
вот я как раз сейчас мило разлекаюсь с pikа'й
Denis
Kirill
стоп celery стучится в rabbit?
Дело не в том кто стучится, а в том для чего оно. Celery - оно в основном для синхронных фреймворков. А потому её "клиентская" часть тоже "синхронная" и не может банально следить за херабитами между ней и реббитом. А раз нет херабитов, то легко просирается конект.
Tishka17
Tishka17
Имхо на сложных проектах от него больше вреда
Kirill
Tishka17
Я правда не юзал, но по беглому чтению чата ощущение, что он решает 0 задач и только добавляет проблем по сравнению с ручным использованием очереди
Kirill
Нормально он всё решает, только вот в случае сложных заморочек сам ты его не починишь - у него подвал довольно большой и сложный для этого
Anonymous
Kirill
У пики есть асинхронные интерфейсы. Ну и да - если там делать "персистентный" конект к реббиту с синхронным интерфейсом, то возможна такая же бяка. Хотя вероятно тут ещё может играть роль наличие локального haproxy - с ним у Celery конект не теряется, а вот от него до реббита - может.
Tishka17
Tishka17
Вообще, у меня не было ещё проекта, где все на питоне. А в других языках чёт селери стрёмно юзать
Kirill
Вот переведу проект на Python 3 и попробую заменить Celery на Dramatiq - он сильно проще внутри устроен.
Kirill
Мне всё равно от Celery не нужно ничего, кроме как поставить таску в очередь и выполнить её в воркере
nzjdMFpV
Посоветуйте годные фреймворки для написания 2д игруль на питоне. Пайгейм и кокос не зашёл. Годот не предлагать.
banteg
arcade может быть, но он пока сыроват
banteg
http://arcade.academy/pygame_comparison.html
nzjdMFpV
Ого, спасибо, а я думал это те же яйца, буду смотреть
Anonymous
nzjdMFpV
И тут ещё один вопросик:
Насколько вообще осмысленно на питоне игры писать? Как обычно нормальные люди делают: собирают исполняемый файл игры через py2exe и пропихивают куда-нибудь?
Denis
Обычно игры пишут не на питоне
nzjdMFpV
Это я знаю, да, но мы сейчас говорим о меньшинстве нормальных людей
nzjdMFpV
Как бэ я же потом не смогу эту игру на сайт к себе закинуть как обычную флешку
nzjdMFpV
Переформулирую вопрос: как мне поделиться написанной игрой?
Anonymous
скорее всего py2exe
Animal
как в grequest поменять source ip? в request работает
import socket
true_socket = socket.socket
def bound_socket(*a, **k):
sock = true_socket(*a, **k)
sock.bind(("127.1.1.1", 0))
return sock
socket.socket = bound_socket
в grequest так уже не работает. В чате для новчиков ответа не получил
Phil
Animal
У тебя 2 интерфейса?
физический - один. Но меня интересует только loopback адреса, так что то, что у меня там физически, особой роли играть не должно, я так думаю
Phil
Animal
Просто дело в дефолтном маршруте скорей всего
не , не в этом точно, пакеты правильно роутились с теми же адресами на версии, в которой я использовал request. Там вылетали какие-то исклюения, программа валилась. Я хотел сейчас снова воспроизвести ошибку, что бы скинуть подрбную информацию, но почему-то сейчас все работает. Правда с того времени адреса destionation поменяли, а какие были в тот момент, когда у меня все ломалось, я не помню. В общем пока вопрос можно считать условно закрытым, раз ошибка не воспроизводится, если что, переспрошу здесь еще раз с листингом ошибки. Спасибо, что откликнулся
Phil
👍😁
Сергей
https://www.youtube.com/watch?v=y3Tpm1LyXfM
Slam!
Как наиболее правильней сделать счетчик, который можно будет менять внутри любой функции и который будет доступен, опять же, из любой?
Tishka17
Передавать его во все
Slam!
Сейчас я сделал через атрибут функции
Slam!
Передавать его никак нельзя
Roman
Slam!
Там даже не счётчик, а булев тип
Roman
присвой его переменной и передавай ее
Slam!
Я передавать не могу) достаю из самой функции
Roman
только булем неизменяемый, потому запихай в класс
Slam!
Tishka17
Slam!
Да, думал с помощью класса сделать, но через атрибут функции проще
Tishka17
Slam!
Tishka17
Атрибут функции плох как минимум тем, что невозможно заставить одну функцию в разных ситуациях юзать разный счетчик
Tishka17
В отличие от атрибута объекта
Slam!
Slam!
Указал два атрибута и меняешь сколько влезет
Tishka17
Хуй
Tishka17
Как ты укажешь два атрибута, если функция всегда юзает один и тот же?
Slam!
Tishka17
def x():
x.smth += 1
Slam!
Tishka17
Вот сделай чтобы эта функция в двух случаях считала независимо
Tishka17
А вот тебе с классом:
class A:
def x(self):
self.smth += 1
Tishka17
Когда надо просто два инстанса создаешь и всё