@botoid

Страница 3317 из 4042
Alex
09.07.2018
20:18:56
*ява?
джава*

Google
Alex
09.07.2018
20:19:45
ГО!
не, фу-фу-фу

Denis
09.07.2018
20:19:50
А что такое корутины? И в чем разница Ява и джава? Это можно сказать сленг

Проксимов
09.07.2018
20:20:13
не, фу-фу-фу
Горутины же

Проксимов
09.07.2018
20:20:32
первое - чай, второе - ЯП
Второе - остров в Индонезии

Denis
09.07.2018
20:20:42
Зависит от местности так сказать. Ява, джава. Главное понятно

Rocket
09.07.2018
20:23:04
Зависит от местности так сказать. Ява, джава. Главное понятно
Хай эвелиабтлити, скалабилити, интерпрайз продакшен платформ. ©️

Marlik
09.07.2018
20:24:10
ты же вкусре что количество тредов ограничено?
а в гошечке мона больше) Сурен подтвердит ща)

Denis
09.07.2018
20:24:29
Второе - остров в Индонезии
Кстати, сигареты Ява были тоже.

Огонь! ?

~/42/elrandir> ?ᅠ
09.07.2018
20:29:04
А есть тыж программист:?

Проксимов
09.07.2018
20:29:23
Denis
09.07.2018
20:29:26
В загашниках

Google
~/42/elrandir> ?ᅠ
09.07.2018
20:30:06
Нашел вроде.

Denis
09.07.2018
20:31:22
Надо больше научно технического репа.

Denis
09.07.2018
20:36:29
Есть
На другие языки есть? Отличный репчик!

tEma
09.07.2018
20:36:59
А для тру питоняч я так понимаю асинх в приоритете?

Denis
09.07.2018
20:37:57
Вот тоже думаю так же сделать
Так говорят что количество потоков ограничено. Но в таком случае пул потоков поможет.

tEma
09.07.2018
20:39:04
Угу
На сколько сложно переписать все что есть на асинх?

Mikhail
09.07.2018
20:39:34
работает, но делать так нельзя ни в коем случае
Даже если предварительно из юзер инпутов удалять [“‘]?

Denis
09.07.2018
20:40:36
А у пула есть ограничения?

Rocket
09.07.2018
20:40:39
А для тру питоняч я так понимаю асинх в приоритете?
Зависит от задачи. Долгоживущие и ждущие большую часть времени ввода/вывода процессы - идеально для asyncio. Числомалотилки, которые грузят процессор большую часть времени - их лучше делать на тредах/процессах.

И это относится не только к питону.

tEma
09.07.2018
20:41:57
Там обычные методы, типо кинуть клаву и сообщение, записать в словарь, чекнуть бд. Думаю на тредах вывезет?

Проксимов
09.07.2018
20:42:28
На сколько сложно переписать все что есть на асинх?
А зачем переписывать всё? Это заведомо плохое решение

Nick
09.07.2018
20:42:55
могу код демобота с оплатой показать
А можешь мне тоже показать?

tEma
09.07.2018
20:44:36
А зачем переписывать всё? Это заведомо плохое решение
Имел ввиду подправить под асинк, я вводный урок смотрел когда то. Но может есть подводные камни, и вот так тупо вставить asincao не получится. Тем более у меня ptb на сколько знаю он вообще в асинк не может

Rocket
09.07.2018
20:44:59
На сколько сложно переписать все что есть на асинх?
Сложность только с сетью - нужно использовать aio-сокеты. Остальное все просто - добавляем async к def и await к call.

Google
Rocket
09.07.2018
20:46:22
Чёт сомнительно, мож так только у джава)
Я про питон сейчас. Новая джава, на сколько я понимаю - тоже так умеет.

Если речь о плюсах - то да, там это куда сложнее.

tEma
09.07.2018
20:46:53
Ну окей я завтра в качестве теста чекну))

А так на тредах пока сделаю

Йоба
09.07.2018
20:47:05
Даже если предварительно из юзер инпутов удалять [“‘]?
зачем мучаться и что-то удалять, чтобы бояться, что может что-то быть не удалено, если можно делать просто ПРАВИЛЬНО

Евгений
09.07.2018
20:47:07
Ребят, каким методом брать инфу при старте ?start=123

tEma
09.07.2018
20:47:45
Бло почему когда я начал изучать ботоделание, никто сразу не сказал что надо идити в сторону асинка или многопоточности

Rocket
09.07.2018
20:48:03
tEma
09.07.2018
20:48:09
Надо в шапку с пометкой "для зелёных" сделать

Йоба
09.07.2018
20:48:13
Ребят, каким методом брать инфу при старте ?start=123
split, там приходит команда пробел циерки

tEma
09.07.2018
20:48:53
Ты же вроде приходил ко мне в чат
Так я там и сижу, и изучать буду. Но все же думал что пока вот так на изи сделаю...

Dima
09.07.2018
20:49:48
>Tema >думала

Евгений
09.07.2018
20:50:21
Евгений
09.07.2018
20:51:03
Чо-то не могу найти split
В документации искал? Если нет, RTFM

Йоба
09.07.2018
20:51:07
Чо-то не могу найти split
тебе придет обычное сообщение команда "start 123", вот ты его этим сплитом и разделишь, чтобы вычленить 123 эти

tEma
09.07.2018
20:51:33
>Tema >думала
Т9 не сщадит

Google
Denis
09.07.2018
20:53:04
Бло почему когда я начал изучать ботоделание, никто сразу не сказал что надо идити в сторону асинка или многопоточности
А это и сам начинаешь понимать когда на кнопку бота одновременно клацает несколько человек.

tEma
09.07.2018
20:55:11
Потому что оно и не всегда надо?
Не всегда. Но большая часть ботов активно используются как многопользовательские, важный фактор

Mikhail
09.07.2018
20:55:22
зачем мучаться и что-то удалять, чтобы бояться, что может что-то быть не удалено, если можно делать просто ПРАВИЛЬНО
А разве есть разница между: ‘’’sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('injection, injection))’’’ и ‘’’sql = "INSERT INTO `users` (`email`, `password`) VALUES ({}, {})".format(injection, injection)’’’ ?

tEma
09.07.2018
20:56:16
Форматом нельзя же

Alex
09.07.2018
20:56:26
tEma
09.07.2018
20:56:43
Всмысле не нужно

Йоба
09.07.2018
20:56:49
А разве есть разница между: ‘’’sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" cursor.execute(sql, ('injection, injection))’’’ и ‘’’sql = "INSERT INTO `users` (`email`, `password`) VALUES ({}, {})".format(injection, injection)’’’ ?
я даже не собираюсь задумываться, есть разница или нет, везде написано, что форматом нельзя, чтобы не было потом мучительно больно, но если хочешь на ровном месте огребсти - дело твое

Denis
09.07.2018
20:57:26
Формат он такой.

Alex
09.07.2018
20:57:36
Mikhail
09.07.2018
20:57:53
tEma
09.07.2018
20:58:01
типичная ошибка - форматирование SQL-запросов строками: cursor.execute('SELECT * FROM table WHERE id1=%d AND id2=%d' % (1, 2)) парамеры в SQL-запросы надо передавать отдельно: cursor.execute('SELECT * FROM table WHERE id1=? AND id2=?', (1, 2)) примечание: в разных драйверах могут быть разные стили передачи параметров, не только "?" это позволяет 1) избежать ошибок безопасности, когда непроверенные данные попадают в запрос - https://xkcd.com/327/ 2) не заморачиваться с корректным экранированием символов 3) в ряде субд улучшает кэширование запросов 4) в некоторых субд позволяет проверять типы данных #faq #sql #нубоошибки

Йоба
09.07.2018
21:00:27
Я читал про это и обычно просто удалят кавычки. Но разве первый вариант (условно правильный) проверит это сам?
тот, который правильный, проверит все, как надо, он безопасный, можно вообще не задумываться, что ты вставляешь

и там ? должны быть вообще-то

Mikhail
09.07.2018
21:03:06
тот, который правильный, проверит все, как надо, он безопасный, можно вообще не задумываться, что ты вставляешь
Это и есть ответ. Если разница есть (подобный запрос сам все делает безопасно), то, конечно, он будет предпочтительнее. Я просто не задумывался, что он не просто для удобства написания, а ещё и для безопасности.

Йоба
09.07.2018
21:05:09
Это и есть ответ. Если разница есть (подобный запрос сам все делает безопасно), то, конечно, он будет предпочтительнее. Я просто не задумывался, что он не просто для удобства написания, а ещё и для безопасности.
Instead, use the DB-API’s parameter substitution. Put ? as a placeholder wherever you want to use a value, and then provide a tuple of values as the second argument to the cursor’s execute() method. (Other database modules may use a different placeholder, such as %s or :1.) For example: https://docs.python.org/2/library/sqlite3.html

Google
Проксимов
09.07.2018
21:06:02
Только например pymysql валидирует сам формат, и там нет плейсхолдеров

Mikhail
09.07.2018
21:09:33
Только например pymysql валидирует сам формат, и там нет плейсхолдеров
Как раз MySQL и pymysql. http://pymysql.readthedocs.io/en/latest/user/examples.html Вопрос начался с того, что я всегда просто кавычки в юзердате тёр и не думал, что такой формат (пример по ссылке) сделает это за меня.

Rocket
09.07.2018
21:13:16
Только например pymysql валидирует сам формат, и там нет плейсхолдеров
Что только люди не делают, чтобы не юзать mongo....

Captain Kazahstan
09.07.2018
21:16:12
Товарищи, как вы делаете рассылку, используя bot api? Допустим, 2к юзерам. Чтобы не выйти за ограничения?

Rocket
09.07.2018
21:16:39
А почему монго/нет?
Устал от реляционных баз данных. Надоели хуже горькой редьки. Когда у тебя данные - это сложные объекты, в нормализованном виде они могут представлять из себя сотни связанных таблиц. Работать с этим дюже надоело. А ещё этот язык запросов и ОРМы, все как один пытающиеся скрыть его от глаз и делающие только жэуже на сложных кейсах. И все это для того чтобы на выходе получить... документ. ??‍♂️

Captain Kazahstan
09.07.2018
21:17:11
Паузу втыкаешь и ок.
Между каждым сообшением?

Mikhail
09.07.2018
21:17:15
Instead, use the DB-API’s parameter substitution. Put ? as a placeholder wherever you want to use a value, and then provide a tuple of values as the second argument to the cursor’s execute() method. (Other database modules may use a different placeholder, such as %s or :1.) For example: https://docs.python.org/2/library/sqlite3.html
Почитал. Не объясняется, почему именно правильный вариант правильный, но мораль понял. Придётся переделать все имеющиеся скрипты.

Captain Kazahstan
09.07.2018
21:17:16
Лол, кстати да

Rocket
09.07.2018
21:17:19
Captain Kazahstan
09.07.2018
21:17:41
Спасибо, мозг уже не варит

@LyoSU
09.07.2018
21:18:06
Там киви сделали вебхук уведомления и канал по апи в телеграме. Сразу видно на какую аудиторию работают (наркобарыг)

Йоба
09.07.2018
21:20:10
Почитал. Не объясняется, почему именно правильный вариант правильный, но мораль понял. Придётся переделать все имеющиеся скрипты.
прямым текстом же написано, что защищает от: Usually your SQL operations will need to use values from Python variables. You shouldn’t assemble your query using Python’s string operations because doing so is insecure; it makes your program vulnerable to an SQL injection attack (see https://xkcd.com/327/ for humorous example of what can go wrong).

Страница 3317 из 4042