Задать вопрос
  • Проблема с юнити 2D?

    @DrRen7
    надо просто изменить интерфейс
    самый просто способ скинуть все в default
    66f1af55cc581601912655.png
    или же открыть все нужные окна в ручную
    Windows -> General(там первый блок точно нужен) они же открываются на ctrl + (1-5)
    должно быть примерно так
    66f1b0b892915907484227.png
    Ответ написан
    Комментировать
  • Как отменить локальный коммит средствами Visual Studio?

    @rPman
    Идеологически git это про 'полную фиксацию изменений удаленно', скорее всего ваша задача (не то что описали а что решаете) - это создание своей ветки, работа в ней, с периодичекими объединениями изменений с master.

    Я конечно могу придумать конструкцию, когда у вас 2 git репозитария, в который сливаются одни и те же файлы (симлинками на каталоги например), и вы попеременно применяете изменения в одном git но откатываете в другом, но это извращение, а так же из-за использования симлинков можно получить неожиданные ошибки, например когда приложение (visdual studio) неверно отслеживает изменения в каталогах.

    p.s. у меня очень похожая конструкция была в eclipse проекте - там был солюшен из десятка проектов, каждый из которых должен был собираться как в консоли так и в ide для поддержки отладки, и структурно в файлах проекта были различия для одновременной поддержки этого, поэтому я собирал в ide симлинками и средствами самой ide проект из файлов и каталогов в другом месте, и оба они были в своих git (изменения, вносимые для работы в ide и отладки было вредно отправлять в центральный git).

    задача выполнялась, серьезных проблем не было так как не менялась структура проекта, правились только файлы, поэтому все работало но приходилось вручную следить за порядком комитов и откатов.
    Ответ написан
  • Как распарсить данный объект вернувшийся в строковом формате JS?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    а он возвращается именно так, в раскрытом виде?

    Просто есть очень похожая штука - jsonl, когда 1 json на строку и достаточно просто разделить ответ построчно.

    Ну а если в таком виде, то явный паттерн завершения json - закрывающая скобка - это единственное что есть на строке
    Ответ написан
    1 комментарий
  • Как распарсить данный объект вернувшийся в строковом формате JS?

    IvanU7n
    @IvanU7n
    nothing interesting here
    а разве что-то типа
    JSON.parse('[' + response.replaceAll("}\n{", "},\n{") + ']');

    не помогает?
    Ответ написан
    1 комментарий
  • Как автоматически загрузить документы на сайт, используя selenium или что-то похожее?

    selenium везде кидает свои исключения и я не не знаю как их правильно обрабатывать, когда мне просто например нужно нажать на кнопку, если не получилось, то пробовать пока не получится.

    1. Я бы сейчас вместо селениума лучше бы взял playwright - у него API гораздо удобнее в плане всяких ожиданий
    2. thread.sleep использовать для этого - это неправильное решение. Нужно ожидать появления/исчезновения элементов по селектору
    3. Если хочешь, чтобы тебе помогли с исключениями - лучше бы их текст сюда скинуть тогда.
    Ответ написан
    3 комментария
  • Как реализовать TcpLister, который будет ожидать запроса?

    petermzg
    @petermzg
    Самый лучший программист
    А зачем вообще использовать TcpLister
    Используйте класс Socket
    void Init()
    {
       listener = new Socket(loopback.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
       listener.Bind(localEndPoint);
       listener.Listen(10);
       listener.BeginAccept(OnBeginAsyncCallback, this);
    }
    private void OnBeginAsyncCallback(IAsyncResult asyncResult)
    {
       var clientSocket = listener.EndAccept(asyncResult);
       listener.BeginAccept(OnBeginAsyncCallback, this);
       // ...
    }

    Будет реально асинхронно и еще на портах ввода-вывода
    Ответ написан
    4 комментария
  • Какая минимальная конфигурация ноутбука для программирования?

    @Drno
    современный i3, минимум 8гб оперативки(лучше 16гб)
    есть куча недорогих леново под такое, только эран у многих так себе..
    можно еще посмотреть хуавеи
    Ответ написан
  • Насколько Kestrel актуален для self-hosted web-сервера?

    Кестрел то актуален. Не актуальны сейчас пакеты с 2.2 и ранее.
    Сейчас всё что связано с aspnetcore идёт сразу вместе с sdk, а не как раньше (всё ещё выглядит как очень странное решение со стороны мс)

    И он используется по-умолчанию и так.
    https://learn.microsoft.com/ru-ru/aspnet/core/fund...
    Ответ написан
    3 комментария
  • Как удалить сессию из БД после истечения срока?

    1. Можно сессии хранить в чём-то типа редиса - там можно задавать ttl
    2. При хранении в обычной реляционке - можно на всякие события аутентификации, когда ты читаешь таблицу сессий - смотреть на ttl и удалять просроченные.
    3. Сверху ещё добавляем какую-нибудь задачу в cron, которая будет раз в сутки чистить.

    Но не совсем понял механизм, как сделать sign-out при не активности или полном истечении времени сессии. Единственное что приходит в голову это background tasks, но думаю, что есть более нормальные решения этой проблемы.

    Не обязательно удалять сессию сразу после её истечения - всё равно же при запросах проверяешь время действия.
    Ответ написан
    Комментировать
  • Как удалить сессию из БД после истечения срока?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    В ASP.NET Core есть стандартный механизм сеансов (ISession): https://learn.microsoft.com/aspnet/core/fundamenta...
    Работает он на базе распределенного кэша (IDistributedCache), который штатными средствами можно базировать на MS SQL и на Redis (и, возможно, есть дополнительные сторонние пакеты для базирования на других СУБД,). Идентифкатор сессии хранится в куки (настраеваемой), по умолчанию - HTTP-only (но это настраивается).
    Механизм устаревания сеансов там есть, параметры тоже можно настроить.
    Кароче, если нет причин обязательно делать свой велосипед (типа, для учебной задачи) можно использовать этот стандартный механизм.
    Правда идея использовать этот механизм именно для авторизации у меня вызывает некоторые неясные опасения: он, вообще-то, не для того сделан. А именно для авторизации (плюс аутентифкация) в ASP.NET Core тоже есть штатное решение (Identity и политики авторизации). И вообще, аутентифкация/авторизация - это такое место, где легко накосячить, а потому лучше там обходиться без своих велосипедов.
    Ответ написан
    3 комментария
  • Форма обратной связи не сохраняет данные. Присылает пустые письма. Выдает ошибку "Name is required Email is required Message is required". почему?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Селекторы регистрозависимые

    У вас идентификаторы в html с большой буквы

    <input type="text" class="form-control" id="Name" placeholder="Иван Иванов">


    А в javascript с маленькой

    var name = $("#name").val();

    вот эти:
    id="Name"
    $("#name")


    Сделайте одинаково. Касается всех полей.
    Ответ написан
    Комментировать
  • Почему появляется ошибка при получении SSL-сертификата certbot?

    @Everything_is_bad
    Detail: DNS problem: NXDOMAIN looking up A for oo.dev - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for oo.dev - check that a DNS record exists for this domain
    А начни с того чтобы прочитать текст ошибки, там тебе явно описали проблему
    Ответ написан
    7 комментариев
  • Почему недоступна функция включения "Ненадежные приложения, у которых есть доступ к аккаунту"?

    StasisMD
    @StasisMD
    Google уже больше года тому запретил эту функцию (небезопасные авторизации по паролю) для обычных Gmail пользователей. Оставили только для корп. Google Workspace, но и им осталось буквально пару месяцев. Теперь доступны только приложения с авторизацией OAuth
    Ответ написан
    Комментировать
  • Как исправить "info: Microsoft.AspNetCore.Hosting.Diagnostics[2] Request finished HTTP/1.1 GET http://localhost:5183/favicon.ico - 400"?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Насколько помню - лого запрашивает браузер. Если я открываю страницу апи, то он и лого запросит, если делаю запрос через curl, то никаких лого запрашиваться не будет.
    Ответ написан
    3 комментария
  • Как выполнить поиск по зашифрованому контенту?

    @rPman
    Есть ещё третий вариант - гомоморфное шифрование. Когда возможны операции над зашифрованным контентом, результат будет так же зашифрованный, и чтобы его прочитать его нужно расшифровать.

    Гугли, есть библиотеки и даже расширение postgres (очень старое, не факт что поддерживается).

    С практической точки зрения польза сомнительна. Ресурсов алгоритм жрет непомерно много и использовать его имеет смысл только если альтернативы в принципе нет.
    Ответ написан
    Комментировать
  • Для чего делают таблицы public?

    TaHKucT
    @TaHKucT
    Linux администратор
    public - это схема по умолчанию в терминалогии PG. Использовать разные схемы можно по разному, например создать схемы wp и zb в одной базе, и в wp.users хранить пользователей условного wordpress'а, а в zb.users условного zabbix'а (или подставьте любые другие приложения). Можно же создать схемы users и orders и в users.contacts хранить контактные данные пользователей, в users.names их ФИО, в orders.current текущие заказы, в orders.completed выполненые заказы и тп. В общем случае можно использовать как хотите, сам PG ни к чему не обязывает и многие эти схемы не используют(всмысле используют стандартную схему public не акцентируя на этом внимание).

    Почему "SELECT * FROM users" мог не сработать: вероятно у вас где-то изменена схема по умолчанию с public на что-то другое. Это можно проверить командой "SHOW search_path"(обычно она выглядит так):
    postgres=# SHOW search_path;
       search_path
    -----------------
     "$user", public
    (1 row)
    postgres=#

    Изменить search_path можно на стороне клиента, например "--search_path=new_search_path" в случае обычного psql, или на стороне сервера командой "ALTER ROLE SET search_path TO ;"

    Подробней про это можно, например, в документации postgrespro почитать
    Ответ написан
    1 комментарий
  • Какая опасность работы под чужим ИП?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Какая опасность работы под чужим ИП?

    Что значит "под чужим"? Используя данных ИП, к которому "один человек" не имеет отношения? УК РФ Статья 171. Незаконное предпринимательство.
    Что кроме увольнения если всплывет может произойти?

    У ИП нет понятия "увольнение", это не работник. Что может произойти еще помимо УК РФ Статьи 171? Денег "одному человеку" не заплатят, "один человек" же не являетесь исполнителем по документам.
    Ответ написан
    1 комментарий
  • Как настроить сервер для отладки вебхуков (webhooks) на локальной машине??

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Сбилдить .NET приложение в докере.
    2. Развернуть докер контейнер на сервере.
    3. Развернуть nginx (тоже можно в контейнере) на сервере.
    4. Настроить nginx, который будет проксировать трафик в п2:
    4.1. Запретить все.
    4.2. Разрешить :80 и :443 порты.
    4.3. Пробросить с п4.2 на внешний порт контейнера п2.
    4.4. Настроить SSL Let's Encrypt (при необходимости).

    По сути, можно взять любое руководство настройки докера и nginx, без привязки к .NET.

    UPD на основе данных из комментариев, конфиги будут выглядеть примерно так, dockerfile (поправить под свое приложение):
    # Образ asp.net.
    FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    # Компилируем приложение из /src.
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
    WORKDIR /src
    
    # Копируем файл проекта и восстанавливаем зависимости.
    COPY ["Project.csproj", "."]
    RUN dotnet restore
    
    # Копируем оставшиеся файлы и компилируем приложение.
    COPY . .
    RUN dotnet build -c Release -o /app/build
    
    # Публикуем приложение.
    FROM build AS publish
    RUN dotnet publish -c Release -o /app/publish
    
    # Создание итогового образа.
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "App.dll"]

    nginx (поправить под свое приложение):
    # http.
    server {
        listen 80;
        listen [::]:80;
        # Домены для обслуживания.
        server_name domain.ru www.domain.ru;
    
        # 301 редирект http->https.
        return 301 https://$host$request_uri;
    }
    
    # https.
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        # Домены для обслуживания.
        server_name domain.ru www.domain.ru;
    
        # Пути до letsencrypt сертификатов.
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256";
    
        location / {
            # Адрес, по которому доступно приложение на локалке сервера (localhost не указывать, а указывать имя контейнера (project в моем случае)).
            proxy_pass http://project:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

    P.S. рекомендую освоить Docker Compose, чтобы было меньше возьни с разворачиванием и общением между контейнерами.
    Ответ написан
    8 комментариев
  • Почему Nginx отдаёт разный размер ответа для одной и той же картинки?

    @golubevvladislav Автор вопроса
    Вроде разобрался. Походу многие клиенты просто по таймауту отваливались. А всё из-за того, что картинку одномоментно загружают 12 тыс клиентов, из-за чего не хватает просто физически канала 100Мб/с. Меньше пропускная возможность - меньше можно одномоментно отдать данных. Увеличили канал до 500Мб/с - 98% клиентов теперь получают картинку в полном объёме.
    Ответ написан
    4 комментария