
Nikolay
17.02.2018
11:47:04
а то есть риск влипнуть на собеседовании

Artem
17.02.2018
11:48:25

Nikolay
17.02.2018
11:49:51
лучше так не делать
сделай message passing через multiprocessing.queue

Google

Nikolay
17.02.2018
11:50:18
и обменивайся сообщениями с процессом четко через нее

Artem
17.02.2018
11:50:52
Машинное обучение?
Ну классификацию от кластеризации отличаю и градиентный спуск показать могу. На текущем месте у меня как раз небольшая система с мл

Gaziz
17.02.2018
11:51:33

Artem
17.02.2018
11:51:52

Nikolay
17.02.2018
11:53:16
ну, в общем случае ты огребаешь обычных проблем с разделяемой памятью и сам себе создаешь race condition
лучше этого избежать

Osman
17.02.2018
11:54:34
Действительно. Спасибо

Nikolay
17.02.2018
12:13:12
Проблемы из 90
Не помню уже, когда сталкивался. Проще очередной тулчейн подцкпить

Denis
17.02.2018
12:15:54

Nikolay
17.02.2018
12:28:22
ты попробуй на Go поколбасить, сразу вспомнишь мать родную

Google

Nikolay
17.02.2018
12:28:59
С комьюнити 1.5 человека

Nikolay
17.02.2018
12:29:55

Nikolay
17.02.2018
12:30:50
Студента и сами разрабы
Я.С.Н.О

Nikolay
17.02.2018
12:31:05
толсто

87776
17.02.2018
12:31:36

Dmitri
17.02.2018
12:32:43

Nikolay
17.02.2018
12:32:59

Dmitri
17.02.2018
12:33:14

Nikolay
17.02.2018
12:33:16
Удоли

Dmitri
17.02.2018
12:33:26
?

Nikolay
17.02.2018
12:33:27
Тебя забанят

Dmitri
17.02.2018
12:33:39

Nikolay
17.02.2018
12:54:40
Реклама тут платная
1биток

Vadim
17.02.2018
13:13:16
Ребят, я все это прочитал про multiprocessing, race condition и все такое.
Ок, если нельзя записать, хоть как считать переменную, из другого процесса естественно)
Я тут видел вариант с queue и это просто убивает смысл разбиения на потоки в моем случае.

Denis
17.02.2018
13:16:23
Не надо взаимодействовать с глобальным состоянием из другого процесса. Кинь сообщение в очередь и сделай что надо в родителе

Google

Nikolay
17.02.2018
13:48:11
если тебе нужен внешний стейт - можешь какую-нибудь базу использовать или юникс-сокет


John
17.02.2018
14:45:08
Есть у кого-нибудь опыт с asyncio? Мне кажется, что я что-то не так делаю.
Есть основной класс, в котором корутина обработки информации, и есть класс-ручка к API, который умеет выполнять всякие сетапы, необходимые для работы и лонгполл (события с которого уходят в обработку). Все методы обоих — корутины.
Перед тем, как подключать лонгполл, надо выполнить два метода API, которые у меня выполнялись прямо в момент подключения оного.
Вся эта хурма хорошо работает для одной мэйн-корутины, но абсолютно непригодна для, например, шести, ибо слишком много запросов к API. Это вполне резонно и выходит, что стоит эти два метода выполнять сразу при инициализации класса API. Но где, блет, если __init__ не может быть асинхронным? Костылить отдельный метод-запускалку?
tl;dr: Где бы вы запускали асинхронный метод, которому место, по идее, в конструкторе?


Никита
17.02.2018
14:50:29
Может вопрос не по теме, но есть ли у кого то статья или видео обьясняющее разницу между разного рода Базами Данных? Типа чем реляцонные хуже/лучше графовых, в чем преимущества и недостатки, и т.п.


Alex
17.02.2018
14:50:36
Есть у кого-нибудь опыт с asyncio? Мне кажется, что я что-то не так делаю.
Есть основной класс, в котором корутина обработки информации, и есть класс-ручка к API, который умеет выполнять всякие сетапы, необходимые для работы и лонгполл (события с которого уходят в обработку). Все методы обоих — корутины.
Перед тем, как подключать лонгполл, надо выполнить два метода API, которые у меня выполнялись прямо в момент подключения оного.
Вся эта хурма хорошо работает для одной мэйн-корутины, но абсолютно непригодна для, например, шести, ибо слишком много запросов к API. Это вполне резонно и выходит, что стоит эти два метода выполнять сразу при инициализации класса API. Но где, блет, если __init__ не может быть асинхронным? Костылить отдельный метод-запускалку?
tl;dr: Где бы вы запускали асинхронный метод, которому место, по идее, в конструкторе?
.setup()


Denis
17.02.2018
14:50:47
Есть у кого-нибудь опыт с asyncio? Мне кажется, что я что-то не так делаю.
Есть основной класс, в котором корутина обработки информации, и есть класс-ручка к API, который умеет выполнять всякие сетапы, необходимые для работы и лонгполл (события с которого уходят в обработку). Все методы обоих — корутины.
Перед тем, как подключать лонгполл, надо выполнить два метода API, которые у меня выполнялись прямо в момент подключения оного.
Вся эта хурма хорошо работает для одной мэйн-корутины, но абсолютно непригодна для, например, шести, ибо слишком много запросов к API. Это вполне резонно и выходит, что стоит эти два метода выполнять сразу при инициализации класса API. Но где, блет, если __init__ не может быть асинхронным? Костылить отдельный метод-запускалку?
tl;dr: Где бы вы запускали асинхронный метод, которому место, по идее, в конструкторе?
Сделай асинхронную фабрику. Например, классметодом

Alex
17.02.2018
14:51:33


Dmitry
17.02.2018
14:52:25
Есть у кого-нибудь опыт с asyncio? Мне кажется, что я что-то не так делаю.
Есть основной класс, в котором корутина обработки информации, и есть класс-ручка к API, который умеет выполнять всякие сетапы, необходимые для работы и лонгполл (события с которого уходят в обработку). Все методы обоих — корутины.
Перед тем, как подключать лонгполл, надо выполнить два метода API, которые у меня выполнялись прямо в момент подключения оного.
Вся эта хурма хорошо работает для одной мэйн-корутины, но абсолютно непригодна для, например, шести, ибо слишком много запросов к API. Это вполне резонно и выходит, что стоит эти два метода выполнять сразу при инициализации класса API. Но где, блет, если __init__ не может быть асинхронным? Костылить отдельный метод-запускалку?
tl;dr: Где бы вы запускали асинхронный метод, которому место, по идее, в конструкторе?
актуальный вопрос... ибо сделал метод-запускалку
но тоже думаю что не совсем это правильно

John
17.02.2018
14:52:33

Никита
17.02.2018
14:53:05

John
17.02.2018
14:53:30

Никита
17.02.2018
14:53:53
Да

John
17.02.2018
14:53:55
В большинстве случаев хватит обычной *SQL
А, да — спасибо, сделаю отдельный метод. Думал, мб есть вариант красивее (или я вообще нафигачил дичи)
Да
И что там будет такого, что ты думаешь воспользоваться чем-то экзотичным?

Никита
17.02.2018
14:56:29
Ничего

John
17.02.2018
14:56:46
Значит, тебе не нужны они. Юзай реляционные.

Никита
17.02.2018
14:56:48
Мне интересно почему существуют другие варианты
и для чего они нужны

John
17.02.2018
14:57:03
Потому что они оптимизированы под очень узкую выборку данных

Google

Nikolay
17.02.2018
14:57:25
реляционные не нужны нафиг, если у тебя нет реляций

John
17.02.2018
14:57:37
Если твои данные лучше всего ложатся на граф — юзай графовую.

Nikolay
17.02.2018
14:57:50
при плоской структуре SQL не нужен от слова вообще
а это очень часто

John
17.02.2018
14:58:11

Nikolay
17.02.2018
14:58:40

John
17.02.2018
14:58:56
Наверняка там пользователи будут, и им будет что-то принадлежать. Уже реляция, разве нет?

Nikolay
17.02.2018
14:59:04
не нужно брать реляционные там, где у тебя данные слабо связанные и есть вариант масштабирования
большинству контентных сайтов не нужен SQL, например

John
17.02.2018
14:59:59
Ой, я знаю, куда это идёт. Я видел такое не раз.

Nikolay
17.02.2018
15:00:01
их можно либо вообще статически генерировать, либо использовать что-то типа Elasticsearch/MongoDB

John
17.02.2018
15:00:17
Монго, да, можно.

Nikolay
17.02.2018
15:00:46

John
17.02.2018
15:01:56
хз, мне и сейчас не особо внушает. Наверное, предрассудки.
Гм, а какие тогда нужны отношения между данными, чтобы оправдать использования реляционных БД?

/dev
17.02.2018
15:05:09

Nikolay
17.02.2018
15:05:12
имхо

Google

John
17.02.2018
15:10:07
Ну необходимость сложных джойнов сводится к минимуму (если не к нулю) денормализацией данных.

Nikolay
17.02.2018
15:13:46
да, только не всегда такое можно себе позволить
кроме того, всякие фичи типа полнотекстового поиска или аналитики на SQL таки проигрывают сильно

Andrew
17.02.2018
15:14:32
Парни, в питоне есть функция перезапуска скрипта, к примеру exit() - это выход (из скрипта), а есть ли что-то подобное только если нужно перезапустить его?

slair
17.02.2018
15:15:16
в питоне всё есть

CthUlhUzzz
17.02.2018
15:15:19
Но зачем?

Andrew
17.02.2018
15:15:50

slair
17.02.2018
15:15:56
если в питоне нет, есть в баше

Tishka17
17.02.2018
15:16:08
И правда, зачем?

CthUlhUzzz
17.02.2018
15:16:09
while True: call_something()
Хоть заперепускайся