Задать вопрос
  • Как сделать, чтобы интернет продолжал работать, пока качаю игру в Steam?

    Ограничь скорость загрузки в настройках загрузки в стиме.
    Скорость тарифа - 300 мегабит.

    Вот и получается, что 36мб в секунду полностью всё выжирают.
    Ответ написан
    4 комментария
  • Почему блокирует OpenAI мои запросы через VPN?

    @AlexVWill
    Некоторые хостинг-провайдеры, на которых находится сервер VPN могут быть в бан-листе у других сервисов, например у того же OpenAI. Или их диапазон IP. Можно попробовать поменять IP сервера, если не поможет, то только смена хоста. DNS тут ни причем.
    Ответ написан
    1 комментарий
  • Куда расти дальше?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не специалист по C# поэтому по качеству кода не смогу ничего сказать. Но могу сказать по другой части.

    Проект создан в 2 коммита. Это обман. Так не бывает. Программисты не делают проект в 2 шага. Обычно
    идет некий итерационный процесс когда в течение дня. Либо в течение итерации разработки какой-то
    фичи делается бранч. И вмерживается в мастер. Или делается отдельный коммит в мастер с описаием что делалось.
    И тогда проект приобретает ИСТОРИЮ изменений. По истории видно как авторы работали. Что изменяли.

    У проекта нет документации. Надо описать что это для чего и так далее. Нет инструкции по сборке.
    Каждый разработчик должен иметь возможность собрать любой проект с гитхаба прочитав инструкцию.
    Сборка - это не программирование. Это отдельный скилл. Почитай что такое сборщики. И это не среда
    разработки. Это отдельный продукт. Обычно в консоли работает. Чтоб на сервере собирать проекты
    в режиме автономного процесса без участия человека.

    У проекта нет модульных тестов. Это говорит о том что нет возможности бытро проверить не сломалась
    ли логика после изменений. Тесты надо добавить.

    Нет внешних метрик здоровья проекта. Непонятно в каком состоянии щас он находится. Компилируется ли вообще? Посмотри как другие проекты в гитхабе выглядят.

    В исходники нужно вставить текст лицензии. Подойдет любая из опен-сорцных.
    Ответ написан
    Комментировать
  • Почему консольное приложение С# созданое в VS Code выглядит нестандартно?

    Adler_lug
    @Adler_lug
    Прямо в первой же строке ссылка, по которой находится ответ на ваш вопрос.
    Ответ написан
    Комментировать
  • Как сделать узконаправленным ChatGPT api python?

    GavriKos
    @GavriKos
    Если апи этого не предоставляет - никак.

    Да и в том то и прикол языковой в том, что как раз классифицировать архисложно.
    "Какой бы фильм посмотреть" - не относится к медикам.
    "Какой фильм посмотреть медикам" - относится в какой то степени, но не факт что будет спрашивать медик.
    Ответ написан
    Комментировать
  • Как сделать товары улетающие в корзину?

    @hesy
    Код анимации

    $(document).ready(function() {
        // Когда документ полностью загружен и готов к работе...
        
        $(".ajax_add_to_cart").on("click", function() {
            // При клике на элемент с классом "ajax_add_to_cart"...
            
            var productImage = $(this).closest(".post").find("img");
            // Находим ближайший родительский элемент с классом "post" и внутри него ищем изображение (тег <img>)
            
            productImage
                .clone() // Клонируем изображение товара
                .css({
                    position: "absolute", // Позиционируем клон абсолютно на странице
                    "z-index": "11100", // Устанавливаем высокий порядок слоя для клонированного изображения
                    top: productImage.offset().top, // Устанавливаем верхнюю позицию клонированного изображения
                    left: productImage.offset().left // Устанавливаем левую позицию клонированного изображения
                })
                .appendTo("body") // Добавляем клонированное изображение внутрь элемента body страницы
                .animate({
                    opacity: 0.05, // Задаем конечную прозрачность для анимации
                    left: $("#cart-punkt").offset().left, // Устанавливаем конечную левую позицию для анимации
                    top: $("#cart-punkt").offset().top, // Устанавливаем конечную верхнюю позицию для анимации
                    width: 20 // Устанавливаем конечную ширину для анимации
                }, 1000, function() {
                    // По завершении анимации...
                    
                    $(this).remove(); // Удаляем клонированное изображение
                });
        });
    });



    Ответ написан
    Комментировать
  • Почему пустой tuple занимает больше памяти, чем tuple с None?

    В случае b у тебя не tuple, а просто None.
    Чтобы получился tuple из одного элемента - нужно добавить запятую
    b = (None,)
    b.__sizeof__() # 32
    Ответ написан
    1 комментарий
  • Qr code на python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что если попросить chatGPT написать код, который "генерит qr и добавляет на него изображение" он сделает все точно по ТЗ, не обращая внимания на то, что изображение перекрыло половину qr.
    Бред на входе -> бред на выходе, все честно.
    Ответ написан
    1 комментарий
  • Хостинги с поддержкой websocket которые могут работать с Django Channels?

    Mi11er
    @Mi11er
    A human...
    vds.selectel.ru за 200 рублев в месяц ( а тарификация по часам), тебе дадут выделенную ВМ, делай шо хош
    Ответ написан
    Комментировать
  • Vcc и Vdd, Vss и Vee как распознать где плюс, а где минус на схемах?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Всё элементарно просто. Набираете в поисковой строке Гугла такой текст - 1602 datasheet. Гугл выдаёт вам почти 4000000 ответов. Выбираете тот, который нравится. Мне понравился вот этот - https://www.openhacks.com/uploadsproductos/eone-16...
    Третья страница этого даташита содержит исчерпывающий и (главное!) точный ответ на ваш вопрос:
    646bc37a97154080252001.jpeg
    Точно так же поступайте и в дальнейшем - тем самым вы сохраните наше время для действительно интересных и важных вопросов (вместо того, чтобы быть при вас личным поисковым оператором), заодно и научитесь гуглить. Возможно, не сразу, возможно с тысячной попытки, но таки научитесь.
    Ответ написан
    2 комментария
  • Каким образом можно создать виртуальную сетевую папку в ubuntu?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Все просто.
    1) Делаете VPN (OpenVPN или WireGuard) между серверами
    2) Ставите на сервер дома NFS-сервер, и расшариваете папочку, пусть будет /mnt/share
    3) На удаленном сервере монтируете в какой нибудь каталог mount -t nfs /mnt/share 192.168.XXX.XXX:/mnt/share
    Ответ написан
    Комментировать
  • Два IP на одном домене. Как настроить переадресацию?

    Это разруливается не через DNS, а через балансировщик.
    У тебя будет, получается, три узла: Основной, Резервный, и Балансер.
    В DNS ты прописываешь балансер (через A/AAA или CNAME - не важно).
    Все запросы от клиентов идут на Балансер и он их пересылает на основной.
    В случае сбоя, Балансер каким-то образом выясняет состояние основного узла (может прямо запрашивать периодически какой-нибудь GET /health или смотреть на ответы, которые он даёт клиентам), и перераспределяет запросы на Резервный в случае, когда был выявлен сбой, и наоборот - в случае сбоя Резервного можно попробовать перенаправить запросы снова на Основной (тут уже как настроишь).

    Попытаться обойтись без балансера можно, но тогда ты столкнёшся с той ситуацией, с которой ты столкнулся:

    При коннекте к www.site1.ru провайдеры через раз подключаются к правильному айпи, то к основному, то к резервному.
    Соответственно где то на сайт заходит, где то нет так как конектится ко 2 айпи который в текущий момент сервер не использует.

    И уйти от этого не получиться, тк это не баг, а фича - DNS сервер провайдера будет кэшировть информацию о записях в твоём домене, чтобы не нагружать твой сервер лишними запросами и быстрее отдавать ответ своим абонентам, при этом при кэшировании может учитываться тот TTL, который ты сам указал.
    + Кэширование может, и скорее всего будет в том числе и на стороне конечного клиента.

    Придирки к терминологии

    Не существует "DNS регистраторов". Есть просто регистраторы, которые говорят что домен принадлежит тебе и позволяют назначить dns-сервера, которые будут этот домен обслуживать.
    И есть отдельно dns-хостинги, где ты можешь прописать различие записи в рамках домена.
    Ответ написан
    5 комментариев
  • Чем можно заменить сжатый воздух при продувки от пыли?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не сочтите за дерзость. Идете в аптеку, и ....
    Правильно!
    Покупаете самую большую клизму!
    А лучше три.

    Сила кулака, и никакого мошенничества. И для здоровья полезно :)
    Носик можно немного подрезать, если отверстие маловато.

    ЗЫ. Можно конечно не клизму, а "резиновую грушу для продувки техники", но это все та же клизма, только в 2-5 раз дороже.
    Ответ написан
    Комментировать
  • Как работает htmlspecialchars()?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну уж для такой-то простой функции должно быть достаточно написанного на странице документации.
    И, в частности, про ENT_QUOTES ;)

    Эта функция заменяет спецсимволы, которые являются управляющими в контексте HTML, на безобидные HTML-сущности. Вот и всё.
    Чисто визуально управляющие символы будут выглядеть так же, как и должны, но в коде не будут представлять ни малейшей опасности.

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

    <?php $name = "' onclick='alert(\"pwned!\")"; ?>
    <input value="<?=htmlspecialchars($name) ?>"> Не важно. Весь текст так и заключен в двойные кавычки
    <input value='<?=htmlspecialchars($name) ?>'> Важно. Закрыли одинарную, вписываем, что хотим

    Во втором случае этот код отрендерится, как
    <input value='' onclick='alert(&quot;pwned!&quot;)'>
    (но при этом &quot; отрендерятся в двойные кавычки, и в onclick будет уже валидный яваскрипт
    alert("pwned!")

    А с взведенным флагом ENT_QUOTES мы получим
    <input value='&#039; onclick=&#039;alert(&quot;pwned!&quot;)'>

    И хотя значение внутри атрибута отрендерится, как ' onclick='alert("pwned!"), но оно все целиком будет внутри атрибута value.

    Разумеется, лучше всего сделать применение функции универсальным, чтобы не проверять кавычки каждый раз, и не обливаться холодным потом, если кавычки вдруг поменяются. И использовать ENT_QUOTES всегда.

    К счастью, РНР уже позаботился о вас и ваших друзьях. Начиная с версии 8.1, флаг ENT_QUOTES ставится по умолчанию. И приведенный выше пример будет работать только на устаревших версиях. Так что ручное добавление уже уходит в область легаси-практик.

    Чтобы не ломать пальцы, каждый раз набирая всё это htmlspecialchars ENT_QUOTES, толковые джуны всегда пишут пользовательскую функцию-макрос, типа
    function esc($var) {
        return htmlspecialchars($var, ENT_QUOTES);
    }

    Правда, надолго с этой функцией не задерживаются, потому что она годится только при обучении. А любой проект сложнее, чем домашняя страничка про любимого котика, в обязательном порядке уже должен для вывода использовать специальный шаблонизатор, например Twig. Где весь вывод идет с помощью специального оператора, который уже по умолчанию экранирует HTML
    <input value="{{$name}}"> Не важно. Все уже проэкранировано до нас

    Важно помнить, что это экранирование работает только в контексте HTML.
    Если выводим данные внутри кода яваскрипт, то htmlspecialchars поможет как мертвому припарки. И в этом случае надо использовать json_encode.

    Ну и разумеется, надо не забывать комбинировать все варианты экранирования.
    Например, код яваскрипт, который пишется в атрибут HTML тега, надо весь целиком экранировать c с помощью htmlspecialchars. А данные для этого кода - c с помощью json_encode:
    <button onclick="<?= htmlspecialchars("window.open(".json_encode($name).")", ENT_QUOTES) ?>">
    Ответ написан
    3 комментария
  • Для тех кто пользовался сборками флибустина, стоит ли ставить сборку 10ltsc? Что по стабильности? Как долго пользовались?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ищите сборку MSDN. Автор Microsoft.
    Наименьшее число багов хотя и встречаются
    Ответ написан
    1 комментарий
  • Почему все называют TypeScript компилируемым языком программирования?

    1. Если душнить, то никто не называет TypeScript компилируемым языком.
    Вот например что написано на официальном сайте на самом верху:

    TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.


    2. У typescript есть компилятор tsc - его называют компилятором, потому что он по определению им является.

    Но стоп, компиляция - это процесс перевода "человеческого" кода в машинный код.

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

    In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).

    Никакой речи о "машинном коде" нет, как видишь)

    А если совсем душнить, то языки не делятся на компилируемые и интерпретируемые - это детали реализации.
    В теории для любого языка можно написать компилятор/транслятор или интерпретатор (и так действительно делают)

    При этом ещё существует какая-то путанница в терминологии:
    1. В русскоязычной литературе действительно принято компилятором называть такой транслятор, который транслирует код с языка высокого уровня в машинный или ассемблер.
    (интересно, в каком тогда месте у таких авторов лежат компиляторы, которые компилируют в какой-нибудь промежуточный язык)
    Получается, что компиляторы - это подмножество трансляторов.

    2. В англоязычном интернете transpiler наоборот являются подмножеством compiler.
    Compiler - такая программа, которая преобразует код с одного языка на другой, причём из одного файла может получиться N файлов.
    А tanspiler - это такая программа, которая берёт исходный код на одном языке, и преобразует его в исходный код на другом языке, причём 1 файл преобразуется ровно в 1 файл.

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

    @Drno
    в чем вопрос то? перечислить ПО надо? так то это скорее на ТЗ для заказчика похоже))

    роутер - pfSense
    свитчи - микротик
    Управление юзерами - Ubuntu server + ldap (либо готовый "комбайн" Zentyal)
    на ПК для юзеров - Linux Mint
    Видеонаблюдение - сервер на Zoneminder + POE свитчи (либо платно Hikvision \ Trassir)
    СКУД - IronLogic
    Мониторинг - Zabbix
    Ответ написан
    5 комментариев
  • Можно ли TCP ускорить при помощи TCP via UDP tunnel?

    Нельзя, потому что пинг зависит от маршрута (грубо говоря расстояния до сервера) и времени обработки пакетов на каждом промежуточном устройстве.

    Завернув TCP в какой-то туннель, оставив тот же маршрут, или даже удлинив его - ты только увеличишь пинг.

    есть какой-то TCP Fast Open но как его задействовать для туннеля\iptables?

    Никак. TCP Fast open должен быть поддержан на уровне приложения. Если сервер не готов к tcp fast open, то в любом случае придётся в какой-то точке обойтись без него.

    Есть методы уменьшения пинга у TCP?

    Обозначим твой компьютер буквой A, а сервер игры буквой B.
    В некоторых ситуациях может быть так, что твой провайдер имеет какой-то странный/ненадёжный/не самый хороший, короче, медленный маршрут из A в B.

    Тогда мы можем попробовать найти такой узел C, до которого у твоего провайдера будет оптимальный маршрут, и из этого узла C в B будет тоже более оптимальный маршрут, чем из A в B.

    Но это достаточно редкая ситуация (мне кажется), тк должно совпасть несколько вещей:
    1. Крайне неэффективный маршрут из A в B (на самом деле не редкая вещь. Например есть Ростелеком, который пакеты из Москвы в Европу шлёт через Азию)
    2. Должен быть такой узел C, который находится в таком ДЦ, у которого есть прямое подключение к твоему провайдеру и прямое подключение к провайдеру, у которого есть маршрут в B (на самом деле тоже не редкость, тк у многих хороших ДЦ есть как минимум два подключения к разным магистральным провайдерам)
    3. Выигрыш от добавления узла C должен превышать оверхед от использования туннелей.

    PS: повторюсь, что если у тебя и так уже оптимальный маршрут, то добавление любых туннелей только увеличит пинг.
    Ответ написан
    Комментировать
  • Как сделать минималистичную тему для слабого пк?

    @Drno
    Ничего менять ненадо. Все эти темы бесполезны и только мешают обычно.
    Выставьте как предлагают наилучшие быстродействие
    Ответ написан
    Комментировать
  • Как сделать минималистичную тему для слабого пк?

    AmanitaRubescens
    @AmanitaRubescens
    Шалтай-болтай
    Startisback - рублей 100 лицензия.
    StartAllBack - если нет 100 рублей.
    Ставим SSD, докидываем память.

    Еще можно попробовать
    spoiler
    644b6f01b17b1580779754.png
    Ответ написан
    Комментировать