• Какой гайд поможет делать авторизацию на сайте golang?

    DollyPapper
    @DollyPapper
    Во первых аутентификацию. Авторизация это про проверку прав.
    Если без REST API, то классика это принимать через POST запрос данные с формы.
    Вот статья
    Если кратко:
    Делаете ручку /signin, которая проверяет пароль присланный пользователем с хешем паролей в базе данных (ну или где вы храните данные)
    Если всё ок, создаете сессию, сохраняете сессию где нибудь в хранилище (опять же это может быть база данных, может быть ин мемори, есть библиотеки для этого, погуглите, да хоть в памяти приложения в мапе храните)
    Далее ID сессии записываете в куки и посылаете ответ пользователю в заголовком Set-Cookie sessid="session_id", где session_id это айди который вы раньше сгенерили.
    А далее пользователь ходит на ваш сайт, и какая нибудь мидлвара берет из запроса куки, берете оттуда id сессии, ищет этот айди в хранилище. Если нашла, то пропускает запрос дальше, если нет - 401 Unauthorized.
    Ну в статье вобщем всё подробно описано.
    Ответ написан
    Комментировать
  • Как сделать чтобы значение при выборе варианта из первой функции передавалось во вторую?

    @dima20155
    you don't choose c++. It chooses you
    Верните из функции значение и передайте его в качестве аргумента в другую функцию:
    def foo(g):
        if g == 3:
            g = 1
        elif g % 2 == 0:
            g = 10
        return g
    
    def bar(g):
        print(g)
    
    g = foo(1)
    bar(g)


    Если вы имеете в виду какое-то другое поведение, то уточните/переформулируйте вопрос.
    Ответ написан
    2 комментария
  • Правильно ли я понял суть транзакций в веб приложениях?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Все, абсолютно все люди путают транзакции с блокировками. Это какая-то массовая галлюцинация.
    Хотя там все просто, как 2х2
    Транзакции используются для консистентности. Чтобы когда выполняется больше одного запроса, изменяющего данные, то были выполнены либо все, либо ни одного.
    А чтобы не было race condition используются блокировки.

    Делаете SELECT FOR UPDATE, который блокирует строку, чтобы больше никто из нее не мог читать. Любой процесс, который захочет прочесть это же значение, будет стоять и ждать.
    Дальше вы делаете свои проверки, и потом сам апдейт, который отпустит блокировку.
    Процесс, который ждал своей очереди, получит уже измененное значение, и проверка не пройдет.
    Ответ написан
    Комментировать
  • Что такое пулинг стейт?

    Никакого "пулинг Стейт" в aiogram нет.
    Вероятно, вам сказали что-то другое.

    Чтобы бот автоматически поднимался при сбое - это совершенно независимая от aiogram вещь, которую можно настроить, например, через systemd.

    Чтобы при этом бот "помнил" в каком состоянии он находился перед сбоем - нужно сохранять состояние в какую-нибудь базу данных.

    Для сохранения состояния в aiogram есть FSM, но это не значит, что тебе нельзя ещё и самостоятельно что-то реализовать.
    Ответ написан
    Комментировать
  • Как тестировать код работающий через очерди?

    Как работает, так и тестировать.
    Если тестируется продюсер - запустить его и посмотреть, что нужное сообщение появилось в очереди (сделать тестового консюмера).

    Если тестируется консюмер - запихнуть сообщение в очередь и посмотреть, что консюмер отреагирует на него ожидаемым образом за отведённое время. (Делаем тестового продюсера)
    Ответ написан
    Комментировать
  • Возможно ли выполнять c++ код введенный в переменную?

    Тк C++ язык компилируемый - нужно в приложение встроить компилятор
    Ответ написан
    Комментировать
  • Что делать если при загрузке linux(2023.2a) с флешки я вижу GNU GRUB?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Обычно по поводу Kali совет дают один - вернись к майнкрафту :)

    Человек, который ставит Kali - не должен задавать такие вопросы.
    Человек, который задает такие вопросы - не должен ставить Kali. Если руки чешутся поставить линух - возьми астру какую-нибудь или simply linux.
    Ответ написан
    7 комментариев
  • Returning 'int (*)[(sizetype)(*sizeMas)]' from a function with incompatible return type 'int *' [-Wincompatible-pointer-types] в Си. Что делать?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    mas уже указатель. Массивы в C - указатели. Не надо & использовать где вы его возвращаете. Только в этом случае оно скомпилируется, но работать не будет, потому что mas - локальный массив. По выходу из функции это будет указатель на отчищенную память. Надл выделять массив через malloc.
    Ответ написан
    Комментировать
  • Насколько разумно использовать асинхронный sqlalchemy для бота?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    А отвечающим откуда знать? Если бот будет асинхронным - используйте. Если нет - в чем тогда смысл?
    Ответ написан
    Комментировать
  • Почему программа на языке C не выполняется?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Оно не компилируется. Нажмите показать ошибки, там будут детали.

    Просто догадки:
    У вас опечатка - функция mian вместо main.
    Потом, в конце функции должно стоять return 0;
    Ответ написан
    4 комментария
  • Ошибка expected expect or finally block.Как решить?

    Frostealth
    @Frostealth
    Backend Developer
    Исключения в python
    try:
        # your code
    except ExceptedException as exc:
        # handle the exception
    Ответ написан
    Комментировать
  • Как отсортировать сущности по количеству связей с другими сущностями?

    Stalker_RED
    @Stalker_RED
    select 
       manga_id, 
       count(manga_id) as cnt 
    from manga2likes
    group by manga_id
    order by cnt
    Ответ написан
    Комментировать
  • Какое ваше отношение к таблицам с внешним ключам с NULL значением?

    @Mylistryx
    А я за NULL! При ForeignKeys - корректное поведение, при unique - корректное поведение, при JOIN корректное поведение.
    FK позволяют организовать целостность данных на уровне БД (CASCADE/RESTRICT/ SET NULL -это уже от бизнес логики) и там нет ON DELETE SET 123 или ON DELETE SET 0, что говорит само за себя, как и NULL значения при LEFT JOIN.
    unique (column):
    null
    null
    1
    2
    ...
    - и это нормальное и правильное поведение, т.е. значения уникальны, если они указаны. С 0 или суррогатным значением так не выйдет и будет расти еще один костыль.
    По поводу экономии места - в нынешних реалиях, экономия на спичках.
    Про обработку NULL / NOT NULL -если используется ORM либо обертка какая, то там это обычно реализовано прозрачно. К примеру Yii2: ArModel::findOne(['col' => null]) само развернет в нужный SQL код. В других фреймворках думаю тоже.
    P.S. Имею ввиду MySQL, в других БД возможно по другому.
    Ответ написан
    Комментировать
  • Как найти координаты?

    @U235U235
    Решаете систему:
    x^2+y^2=(r1)^2
    (x-a)^2+y^2=(r2)^2
    Она сведется к квадратному уравнению. Решаете его и берете корень с отрицательным y. Все.
    Ответ написан
    Комментировать
  • Как скопировать сайт требующий авторизацию?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Обычный парсинг с сохранением авторизационных куки
    Ответ написан
    Комментировать
  • Как объединить значение двух файлов и внести в переменную?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Говорят, скоро никаких профессий не останется, только составители промтов к искусственному интеллекту.
    Так что надо потихоньку учиться выражать свои желания словами (хотя злые языки утверждают, что этому учат в средней школе на уроках литературы, и по идее совершеннолетний недоросль уже должен этим искусством владеть).
    И если задать мирозданию вопрос не "как объединить два файла", а написать то, что на самом деле нужно,
    bash сделать из двйх файлов один с двумя колонками
    то гугль прекрасно найдет вам ответ, даже без всякого ИИ.
    Ответ написан
    Комментировать
  • Как запустить Kali Linux на Mac M1 на "голом железе"?

    @dronmaxman
    VoIP Administrator
    В данный момент на m1 можно запустить только Asahi Linux.
    Ответ написан
    Комментировать
  • Как удалить определённое словосочетание в значении MYSQL?

    @alexalexes
    1. Нужно знать что такое Update.
    2. Уметь работать с Update, не обнулив все подряд (семь раз select-ть с таким же where - один раз update-ть!)
    3. Некоторые строковые функции, например, replace.
    4. Режим работы транзакций и уровень изоляции таблиц при выполнении транзакций. Чтобы не было сюрпризом, когда работаете с выключенным autocommit-ом (это касается desktop программ - менеджеров СУБД), что данные не сохранились, когда забыли объявить commit после изменения данных, или уметь откатываться rollback-ом, если не объявили commit. Еще доступ к таблице будет заблокирован, пока вы принимаете решение после изменения данных - фиксировать их или нет, если у вас уровень изоляции транзакции на всю таблицу и вы работаете без autocommit.
    update superbase.table1
    set theme = replace(theme, 'комплект', '')
    where theme like '%комплект%'
    Ответ написан
    1 комментарий
  • Как используются "магические константы" в реальных реализациях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты должен спрашивать какие алгоритмы игровой графики бывают. Это важное. А константа - это просто реализация.

    Почитай Генри Уоррена - Алгоритмические трюки для программистов. Там есть всякое. Деление через умножение на магию. Умножение через сдвиги. Дискретные логарифмы и корни и прочее.
    Ответ написан
    Комментировать
  • Как правильно сделать вывод данных из sqlite3?

    Vindicar
    @Vindicar
    RTFM!
    Category ID пробелы в именах столбцов - не лучшая идея. У тебя точно толбец так называется? Если да, то оберни имя столбца в `бэктики` (обычно на клавише Ё).
    Ну и да, сдаётся мне, что 'call.data' не будет работать так, как ты это ожидаешь.
    Ответ написан
    Комментировать