
Aleksey
18.04.2017
16:15:22

Скрудж
18.04.2017
16:15:25
*агрессивный маркетинг ON* продам валидные аккаунты ВК с отлежкой по хорошей цене (40 рублей за акк) *агрессивный маркетинг OFF*

Igor
18.04.2017
16:16:48
чё такое отслежка

Aleksey
18.04.2017
16:17:18

Google

Igor
18.04.2017
16:17:35
ой, в глаза ебусь, сорри

Aleksey
18.04.2017
16:18:22
Один хуй быстро в бан улетят

Скрудж
18.04.2017
16:18:58
Ты не шареш, а я шареш, у меня опыт, доверяй мне

Aleksey
18.04.2017
16:20:34

Проксимов
18.04.2017
16:21:34

Скрудж
18.04.2017
16:21:54

Проксимов
18.04.2017
16:22:42
Могу продать по 20))

Aleksey
18.04.2017
16:23:55
Кстати помните недавно прогеры вк накосячили и все стали модераторами вконтакте?)

Проксимов
18.04.2017
16:24:13
Не успел удалить MDK ((

Archer
18.04.2017
16:24:54

Aleksey
18.04.2017
16:25:07

Google

Vasiliy
18.04.2017
16:25:11

Проксимов
18.04.2017
16:25:30

Aleksey
18.04.2017
16:25:59
И как
Ща кину ссылку почитать
https://habrahabr.ru/post/324446 здесь немного написали
На дваче помню выкладывали пак со скриншотами

Совух
18.04.2017
16:52:43
Как можно лечиться от race condition? Сервер: flask+sqlalchemy+postgres. Клиент: телеграм бот, в котором очень быстро можно жать кнопочки?

Vasiliy
18.04.2017
16:55:09
заводить на каждого собеседника отдельную очередь задач, вероятно

Совух
18.04.2017
17:00:10

Tony
18.04.2017
17:02:45

Vasiliy
18.04.2017
17:08:45
Через редис можно

Совух
18.04.2017
17:10:10
поподробнее
В общем в боте есть опция, принимает значения ON/OFF, она хранится в БД. Если жать эту опцию (в боте) как нормальный человек, всё работает ок. Если нажать 10 раз за секунду, в БД запишется 2 раза, что эта опция ON, и из=за этого начинают сыпаться ошибки

Vasiliy
18.04.2017
17:11:18
Если проблема в том, что вам таски прилетают в нужном порядке, а гонка в обработке, вам нужен промежуточный обработчик, который будет обеспечивать нужный порядок задач
А, у вас в базе гонка
Тогда можно либо лочить таблицу до чтения из неё, либо если у вас простая логика апдейта, делать все в одну операцию

Tony
18.04.2017
17:16:43
потом при записи пиши not current_state

Vasiliy
18.04.2017
17:18:19
Но вообще держать правильный порядок выполнения задач для клиента это удобно

Мария
18.04.2017
17:18:30
Всем привет, можете подсказать где взять готового бота с исходником для телеграмм на питоне.

Google

Tony
18.04.2017
17:18:40
дока

Igor
18.04.2017
17:18:51

Tony
18.04.2017
17:18:52
там примеры

Проксимов
18.04.2017
17:19:12

Vasiliy
18.04.2017
17:19:33
а кто тут гонки делает?
Ну если тебе прилетает 10 задач на одного бота, а ты их асинхронно начинаешь выполнять, большие шансы что у тебя рано или поздно гонка будет

Igor
18.04.2017
17:19:48
и убийца Фейсбука!

Tony
18.04.2017
17:20:07
бота
ну то есть сделал на 90%
сегодня деплой

Vasiliy
18.04.2017
17:20:41

Проксимов
18.04.2017
17:21:46
Проблемы с архитектурой?

Tony
18.04.2017
17:21:57

Проксимов
18.04.2017
17:22:10

Tony
18.04.2017
17:22:34
Если проблема в том, что вам таски прилетают в нужном порядке, а гонка в обработке, вам нужен промежуточный обработчик, который будет обеспечивать нужный порядок задач
А, у вас в базе гонка
а кто тут гонки делает?

Google

Tony
18.04.2017
17:22:45
мне интересно на конкурента посмотреть
а не спрашиваю как делать

Igor
18.04.2017
17:23:57
гм.
race condition.
состояние гонки. посмотри в Википедии той же

Aleksey
18.04.2017
17:27:13

Маришка
18.04.2017
17:34:45

Данис
18.04.2017
17:43:06

Марк
18.04.2017
18:44:31
https://www.rockpapershotgun.com/2017/03/23/making-dungeon-crawl-stone-soup-with-253-cooks-and-no-head-chef/
Как-то провтыкал статейку про мою любимую игрушку последних лет
Фронт на петончике, кстати. Опенсорс

Андрей
18.04.2017
19:05:21
Всмысле фронт ?

Aleksey
18.04.2017
19:09:46

Марк
18.04.2017
19:10:49
Всмысле фронт ?
Есть варик оффлан играть, а есть варик на сайте. Вот сайт на Торнадо.
http://crawl.xtahua.com:8080/#lobby
Вот так это выглядит

Alex
18.04.2017
21:29:34
немного извращений
/py3
(lambda k, a, b, o, m: __import__('sys').stdout.write(''.join([k, a, b, o, o, m]).upper()))(getattr(dict.keys, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[0], getattr(abs, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[0], *list(getattr(object, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[:2][::-1]), __name__[2] if not type(print).__name__[:len(object.__name__) + 1] in __name__ else map.__name__[0])
Result:
KABOOM
(в инлайн не влезает, поэтому пересланное)

Google

Vit
18.04.2017
21:33:10
это не немного

Alex
18.04.2017
21:33:47
мб потом в следующий вечер, когда нечего будет делать х)

Pontius
18.04.2017
21:34:08
Свидетели фп в конференции, алерт
Выучите уже кложур

Pavel
18.04.2017
21:36:50
/py3
(lambda k, a, b, o, m: __import__('sys').stdout.write(''.join([k, a, b, o, o, m]).upper()))(getattr(dict.keys, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[0], getattr(abs, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[0], *list(getattr(object, list(globals().keys())[0][0] * 2 + __import__('os').uname.__name__[-4:] + list(globals().keys())[0][-1] * 2)[:2][::-1]), __name__[2] if not type(print).__name__[:len(object.__name__) + 1] in __name__ else map.__name__[0])
AttributeError: module 'os' has no attribute 'uname'


Alex
18.04.2017
21:37:04
AttributeError: module 'os' has no attribute 'uname'
а вот так под виндой должно работать:
(lambda k, a, b, o, m: __import__('sys').stdout.write(
''.join([k, a, b, o, o, m]).upper())
)(getattr(dict.keys,
list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[0],
getattr(abs,
list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[0],
*list(getattr(object, list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[:2][::-1]),
__name__[2] if not type(print).__name__[:len(object.__name__) + 1] in __name__ else map.__name__[0]
)


Pavel
18.04.2017
21:40:05
а вот так под виндой должно работать:
(lambda k, a, b, o, m: __import__('sys').stdout.write(
''.join([k, a, b, o, o, m]).upper())
)(getattr(dict.keys,
list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[0],
getattr(abs,
list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[0],
*list(getattr(object, list(globals().keys())[0][0] * 2 +
__import__('socket').gethostname.__name__[-4:] +
list(globals().keys())[0][-1] * 2)[:2][::-1]),
__name__[2] if not type(print).__name__[:len(object.__name__) + 1] in __name__ else map.__name__[0]
)
я не буду запускать этот код, я знаю, ты криптолокер хочешь подсадить.

Alex
18.04.2017
21:40:15
?

Stanislav
18.04.2017
21:58:10
from future import print_function; ''' print(q[1]('t9(}zw|q}/>VzrP}/q|zaJ Q>V')),exit(0)#''' q=lambda x,_=('c9*6iv"&s1[Y/`Oh7_|pEW:=!uT4+zeNl;Im\'X\\<-wabDMZ8ykgR@{r>B)~qKFdC3H0Q%,S}xVG](?^2#oPjJL.A$U fnt5'): type('').__dict__['}VJ|(@J}>'. translate(('_'*32+_+('__'*len(_))[:(1<<2)-1-(1<<8-2)]))](x,('_'*32+_+('__'* len(_))[:(1<<2)-1-(1<<8-2)]));globals()[q('11$C3qV}11')] = lambda _,q=q,__builtins__=__builtins__: builtins.__dict__[q('11$C3qV}11')](q(_));q2=( lambda globals=(lambda q=(lambda x: getattr(__import__('q('),x)): q): (lambda os, import=q: (globals()(__import__(os)))))(); q=[q2('q3>|')(__import__( '(P(').__dict__[q('JVR%')][0],0),q];q2('^93o')(3,0);raw_input();input()


Roman
18.04.2017
22:00:23
from future import print_function; ''' print(q[1]('t9(}zw|q}/>VzrP}/q|zaJ Q>V')),exit(0)#''' q=lambda x,_=('c9*6iv"&s1[Y/`Oh7_|pEW:=!uT4+zeNl;Im\'X\\<-wabDMZ8ykgR@{r>B)~qKFdC3H0Q%,S}xVG](?^2#oPjJL.A$U fnt5'): type('').__dict__['}VJ|(@J}>'. translate(('_'*32+_+('__'*len(_))[:(1<<2)-1-(1<<8-2)]))](x,('_'*32+_+('__'* len(_))[:(1<<2)-1-(1<<8-2)]));globals()[q('11$C3qV}11')] = lambda _,q=q,__builtins__=__builtins__: builtins.__dict__[q('11$C3qV}11')](q(_));q2=( lambda globals=(lambda q=(lambda x: getattr(__import__('q('),x)): q): (lambda os, import=q: (globals()(__import__(os)))))(); q=[q2('q3>|')(__import__( '(P(').__dict__[q('JVR%')][0],0),q];q2('^93o')(3,0);raw_input();input()
Бля
Зачем это тут?

Stanislav
18.04.2017
22:01:02
https://benkurtovic.com/2014/06/01/obfuscating-hello-world.html