Задать вопрос
  • Регистрация по номеру телефона?

    @knigaman
    Первый запрос = принимаем на сервере номер телефона, генерируем токен (случайная строка длиной, предположим, 64 символа - цифры, буквы большие и маленькие), отправляем его на клиент. Генерируем код доступа, отправляем его смской на телефон. В зависимости от логики можем и не отправлять (если допустим у нас метод для логина а такого юзера еще нет (он еще не зарегистрирован)).

    Второй запрос = отправляем с клиента токен (тот 64 символьный полученный от сервера) и строку с кодом из смс. Проверяем на сервере токен и код из смс, если все ок - пускаем в аккаунт.

    Примечания:
    1) токены и сами попытки входа должны жить определенное количество времени, предположим 5 минут.
    2) попытки ввода кода (неправильные вводы) должны быть ограничены разумным числом (ну допустим 5 попыток)
    3) если можно то лучше код сделать длиннее - хотя бы 6 цифр, а лучше 8 и более.
    4) попытки входа в аккаунт можно ограничить, но тогда будет можно абузить эту "фичу" и блокировать вход чувакам, тут выбираем меньшее из зол исходя из бизнес требований
    5) можно экономить на смсках и доставлять код в последних цифрах номера / голосовой озвучкой, отправлять в вк, ватсап, телеграм, вайбер

    500 айкью примечания для кое какой защиты от слива бюджета:
    1) можно юзать капчу (можно не всегда а когда начинается аномалия по отправке кодов - всплеск количества отправок)
    2) как уже и говорил разделение входа и регистрации
    3) ставим бот защиту от какого нибудь сервиса по защите от ддос/бот атак
    4) иногда можно не отправить код а отправить клиенту респонс что код отправлен, если клиент вводит код - скорее всего это атака. человек же запросит код повторно (потому что он тупо ему не пришел)
    5) иногда можно отправить код не сразу а через предположим, 30 секунд - если ввели код раньше - значит что-то не так
    Ответ написан
    9 комментариев
  • Как цикл for влияет на формирования списка?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Дело не в цикле for. Функция pair возвращает генератор, а генератор можно обойти только один раз.
    Ответ написан
    Комментировать
  • Как работать с датой записанной в поле формата числа с плавающей точкой?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Этот способ хранения даты тянется ещё с Lotus 1-2-3. Когда Microsoft добавляла дату/время в Excel, то для совместимости использовали тот же формат.
    Отсчёт ведётся от 30.12.1899. Целая часть - количество дней, прошедших с этой даты, дробная часть - время. Если дробную часть умножить на 24*60*60, то получим количество секунд с начала дня.
    Встроенных функция для преобразования в PostgreSQL нет, так что, видимо, это прямой перенос из чего-то типа MSAccess.
    45672.38114849537 соответствует 2025-01-15 09:08:51.230
    Получить можно, например, так:
    SELECT
      date_lotus,
      '1899-12-30'::date + MAKE_INTERVAL(days => date_lotus::int, secs => ((date_lotus - date_lotus::int) * 24*60*60)::int) AS datetime
      FROM test;
    
    | date_lotus        | datetime            |
    | ----------------- | ------------------- |
    | 45672.38114849537 | 2025-01-15 09:08:51 |
    Ответ написан
    Комментировать
  • Какие ошибки в понимании объектов?

    Maksim_64
    @Maksim_64
    Data Analyst
    (3).__class__- здесь объект создался, затем ты обращаешься к его атрибуту.

    3.__class__ - здесь при его создании произошла ошибка (если быть точным даже на стадии парсинга ошибка), питон пытается спарсить, как float, и у него естественно не получается.
    Ответ написан
    Комментировать
  • Как решить проблему с кодировкой 1251?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Вот так определяете проблему:
    670d4c201254a086434124.png
    Далее либо меняете исходную кодировку либо добавляете конвертацию в нужную или еще какие-то параметры настройки для автоматической конвертации там, где вы её используете.
    Ответ написан
    3 комментария
  • Почему при проверке Decimal на принадлежность возвращается false?

    @Everything_is_bad
    заново читаем учебник или доки
    1. выясняем что именно делает is
    2. делаем правильно isinstance(a, Decimal)
    Ответ написан
    Комментировать
  • Как исправить «You have divergent branches and need to specify how to reconcile them»?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вы не дочитали до конца сообщение об ошибке
    Hint: You have divergent branches and need to specify how to reconcile them.
    Hint: You can do so by running one of the following commands sometime before
    Hint: your next pull:
    Hint: 
    Hint:   git config pull.rebase false  # merge
    Hint:   git config pull.rebase true   # rebase
    Hint:   git config pull.ff only       # fast-forward only
    Hint: 
    Hint: You can replace "git config" with "git config --global" to set a default
    Hint: preference for all repositories. You can also pass --rebase, --no-rebase,
    Hint: or --ff-only on the command line to override the configured default per
    Hint: invocation.

    Гит вам говорит, что история веток разошлась и нужно явно указать, каким методом сливать разные ветки при pull.
    Обычно принято использовать метод merge, поэтому мы либо каждый раз это уточняем:
    git pull --no-rebase
    Либо сохраняем глобальный параметр для всех ваших репозиториев:
    git config --global pull.rebase false
    Ответ написан
    Комментировать
  • Какой алгоритм можно применить при проверки числа на простое ли оно?

    @Mercury13
    Программист на «си с крестами» и не только
    Если нужно проверить а) точно, и б) одно; в) не очень большое число (миллион тоже небольшое) — ничего нет лучше, чем проверка нечётных чисел до корня из n. То есть до 1000.

    Если точно, много и небольшие — то придётся держать список простых чисел, пополняя его, когда попадётся слишком большое число. Список тоже до корня из n. Допустим, если предел — int4 (≈4 млрд), то нужно держать только список до 65535, это пара тысяч чисел.

    Если число совсем небольшое и может быть где-то в списке — ищем его хитрой разновидностью поиска: проверяем 1-е число, 2-е, 4-е и т.д., пока не определим диапазон, где может быть число. И в этом диапазоне ищем двоичным поиском.

    В криптографии востребован неточный поиск — «число, скорее всего, простое». Но об этом не будем, вы не настолько круты. Тут уже основано на том, что держим таблицу небольших простых чисел и делим на них, а затем гоняем неточные тесты.

    PERFECT number — это СОВЕРШЕННОЕ число. Это не то (сумма всех делителей равняется самому числу), и для теста на совершенное число тоже надо проверять до корня из n — если a делится на b, то добавляем и b, и a/b (кроме случаев, когда b=1 и b²=a, разумеется). Если есть простые числа до корня из n — тоже можно разбить на простые множители (один из множителей может быть больше корня из n!) и подключить комбинаторику, чтобы заполучить остальные.
    Ответ написан
    2 комментария
  • Как реализовать факторизацию для числа больше 300 символов?

    @rPman
    Вы хотите разложить на множители 1024бит число? за 20 минут?
    https://ru.wikipedia.org/wiki/RSA-числа
    RSA-240 имеет 240 десятичных знаков (795 бит) и было успешно факторизовано 2 декабря 2019 года Эмманюэлем Томе и его коллегами[6][7]. Для выполнения задачи было использовано несколько кластеров компьютеров в разных странах.
    Ответ написан
    1 комментарий
  • Как в комментарии сделать ссылки на участок кода?

    Adamos
    @Adamos
    /**
     * @link MyClass::myMethod
     */
    
    class MyClass
    {
        static public function myMethod()
    Ответ написан
    1 комментарий
  • Можно ли видео на сайте без сохранение на диск показывать в меньшем разрешении?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Видео в любом случае должно быть кем то сконвертировано, перед отправкой клиенту, варианты:
    - Либо множество заранее подготовленных видео роликов с нужным качеством (ютуб так делает), потребуется сильно больше места на диске, но нагрузка на процессор будет сильно меньше + можно выбрать ночное время для обработки.
    - Либо сервер, который будет конвертировать видео в реальном времени, но нагрузка на процессор будет сильно больше.
    Ответ написан
    5 комментариев
  • Какую мышку выбрать для Macbook?

    xez
    @xez
    TL Junior Roo
    Макбуку не нужна мышка - там трекпад же классный.
    Ну и если брать - то лучше g502, как по мне, ничего нет.
    Ответ написан
    7 комментариев
  • Почему программа не работает?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Проблема в том, что сначала пытаетесь вычислить a^(p-2), а потом взять его по модулю. В задаче числа до 10^9 и если вы попытаетесь вычислить что-то вроде 99999^1000005, то у вас int переменная переполнится, потому что там должны быть миллионы знаков в числе, а в int едва 10 влезает.

    Надо брать по модулю при каждом умножении в возведении в степень.

    Потому что (a*b)%p = (a%p)*(b%p) % p.

    Edit:

    Еще две ошибки: считать произведение надо в long long, потму что 10^9*10^9 в int не влезает.
    И fast_deg(a, deg/2) надо вызывать только один раз, а то у вас функция работает за O(n) вместо O(log n).
    Ответ написан
    2 комментария
  • С какой периодичностью обновляется список сообщений в телеграме?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Список сообщений обновляется по факту, а не по таймауту, хотя всё зависит от клиента/сети и т. п.
    Ответ написан
    Комментировать
  • Есть ли какой-либо бесплатный удаленный сервер с долгосрочной перспективой использования, который можно использовать в коммерческих целях?

    @Everything_is_bad
    бесплатный удаленный сервер с долгосрочной перспективой использования, который можно использовать в коммерческих целях
    100500 раз уже сказано, заплати 5$ за минимальный нормальный vps и не страдай фигней
    Ответ написан
    3 комментария
  • Направления создание клона Minecraft?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Освоить базовый синтаксис русского языка.
    Ответ написан
    1 комментарий
  • TypeError: __init__() takes 1 positional argument but 2 were given у меня проект на aiogram плюс sqlalhemy ,но я совсем недавно начал?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQLAlchemy
    Седой и строгий
    Ошибка подчёркнута же в бэктрейсе, чего её искать? Что по вашему делает строка User(tg_id == tg_id)?
    Ответ написан
    1 комментарий
  • Почему глухой звук в игре при включении микрофона?

    Потому что режим гарнитуры.
    Исправить нельзя - это особенности bluetooth.

    Хочешь нормального звука и беспровод - бери беспроводные наушники, которые подключаются через свой трансивер, а не через bt.
    Либо подключай микрофон отдельно
    Ответ написан
    Комментировать
  • Вычитаю одно округленное число из другого, в ответе выдается число с кучей знаков после запятой, как это исправить?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Добро пожаловать в реальный мир вычислений чисел с плавающей запятой с погрешностью! Если вам нужны точные вычисления - используйте тип decimal или аналогичный для вашего ЯП.
    https://habr.com/ru/articles/266023/
    https://learn.microsoft.com/ru-ru/office/troublesh...
    https://0.30000000000000004.com/
    Ответ написан
    2 комментария
  • Есть ли рускоязычная среда програмирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    я не думаю что вам будет понятнее такой код:
    класс ПростойКласс {
        приватно:
            свойство строка названиеПеременной
        публично конструктор (строка названиеПеременной) {
             контекст.названиеПеременной = названиеПеременной;
        }
        // ...
    }
    
    ПростойКласс[] массивКлассов = создать ПростойКласс[10];
    пока (беззнаковое целое итератор = 0; итератор < 10; итератор++) {
        массивКлассов[итератор] = создать ПростойКласс("строка передаваемая в конструктор);
    }


    Вообще все эти понятия типа "функция может возвращать значение" (точнее наоборот, она обычно возвращает значение но может и не возвращать) родом из математики, и там никто не ноет что "почему все называют эти все штуки буквами греческого алфовита". Никто не кричит "почему синус принято обозначать sin а не син" и т.д.

    Тут так же. Знание самого языка не поможет вам понять смысла конструкций типа for.
    Ответ написан
    3 комментария