Задать вопрос
  • Замена числа N, на число N+1, но только в определенных строках?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Непосредственно перед этой колбасой нужно вставить что-то вроде такого:
    local counter = 46;
    local function CheckCounter()
      counter = counter + 1;
      return counter;
    end

    После этого каждое вхождение "== 47 then" в тексте можно заменить
    на "== CheckCounter() then" обычной массовой заменой.

    Функция сначала возвратит число 47, но при каждом следующем вызове будет возвращать на 1 больше, так что сработает нужный по счёту блок согласно твоей логике.
    Ответ написан
    Комментировать
  • Что можно написать новичку на асм?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1. Напиши алгоритм сортировки, который использует SSE для ускорения.
    2. Используй SSE для оптимизации операции умножения матриц. Потом можно будет сравнить с реализацией на С.
    3. Реализуй алгоритм для отрисовки фракталов (например, множества Мандельброта) с использованием SSE.
    4. Создай простой редактор изображений, где можно менять яркость, контраст и юзать фильтры (размытие, резкость) с использованием MMX и SSE.
    Ответ написан
    Комментировать
  • Критично падает фпс при использовании мыши?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала, проверить, какой процесс нагружает систему. Если есть второй монитор, то сам бог велел вывести туда диспетчер задач. Иначе можно воспользоваться утилитой, которая помнит хронологию нагрузки проца для каждого процесса хотя бы за последнюю минуту.
    Ответ написан
  • Можно ли общаться с ChatGPT голосом?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Да, если ChatGPT соединить с системой распознавания голоса, которая сможет перевести голос в текст.

    Надеюсь ты понимаешь, что ChatGPT - это не любой "умеющий разговаривать" бот, а конкретный, разработанный OpenAI, конкретная модель. Уже сейчас возможность на сайте OpenAI при общении с ChatGPT выбрать, какие плагины ты хочешь использовать из "plugin store". Если чего-то не хватает сейчас, то в ближайшем будущем наверняка появится.
    Основная ссылка: https://chat.openai.com/
    Правда, без танцев с бубном из РФ будет сложно получить доступ.

    Сейчас практически все неофициальные "сайтики", на которых можно общаться с GPT, используют API от OpenAI. Это не обязательно ChatGPT, потому что у OpenAI есть и другие модели, способные "общаться". Тем не менее, надо понимать, откуда ноги растут.
    https://platform.openai.com/docs/introduction

    Что касается ChatGPT и Алисы, то если их сравнивать, то первый - подросток лет 16, а Алиса - ребенок лет 10. Обе модели прочитали миллион книг в свои годы (антропоморфизированно выражаясь).
    Ответ написан
    Комментировать
  • Как найти определенную последовательность в массиве объектов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Попробуй это:
    код
    function findSequence(arr) {
        let maxSequence = [];
        let currentSequence = [];
    
        for (let i = 1; i < arr.length - 1; i++) {
            const currentValue = parseInt(arr[i].value, 10);
            const prevValue = parseInt(arr[i - 1].value, 10);
            const nextValue = parseInt(arr[i + 1].value, 10);
    
            if (prevValue > currentValue && currentValue < nextValue) {
                currentSequence = [arr[i]];
            } else if (currentSequence.length > 0 && currentValue < nextValue) {
                currentSequence.push(arr[i]);
            } else {
                currentSequence = [];
            }
    
            if (currentSequence.length > maxSequence.length) {
                maxSequence = currentSequence.slice();
            }
        }
    
        if (currentSequence.length > 0 && parseInt(arr[arr.length - 1].value, 10) > parseInt(arr[arr.length - 2].value, 10)) {
            currentSequence.push(arr[arr.length - 1]);
            if (currentSequence.length > maxSequence.length) {
                maxSequence = currentSequence.slice();
            }
        }
    
        return maxSequence;
    }
    
    let arr1 = [{ value: '2' }, { value: '4' }, { value: '11' }, { value: '7' }, { value: '8' }, { value: '9' }];
    let arr2 = [{ value: '5' }, { value: '20' }, { value: '5' }, { value: '7' }, { value: '9' }, { value: '11' }];
    
    console.log(findSequence(arr1)); // (7, 8, 9)
    console.log(findSequence(arr2)); // (5, 7, 9, 11)

    Результат верный. Для первого вызова - (7, 8, 9), а для второго - (5, 7, 9, 11).

    К слову, код довольно кривой, так как это просто пример того, как найти определенную последовательность в массиве объектов. Подредактируй под свои нужды.
    Ответ написан
    1 комментарий
  • Как написать подсчет времени проведенного в игре для лаунчера?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Просто следишь, что такой-то процесс всё ещё запущен и находится в памяти.
    В Стиме сделано так, что эта инфа периодически отсылается на сервер, и там уже происходит подсчет времени.
    Ответ написан
    Комментировать
  • Как реализовать вместо рандома очередь, 1, 2, 3, 4 и т.д.?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зависит от конкретной задачи. Если это что-то типа рекламы, где точность не важна, то можно хранить счетчик в самом браузере в localStorage (через JavaScript).
    var counter = localStorage.counter || 0; // загружаем
    counter++;
    if (counter >= 10) counter = 0;
    localStorage.counter = counter; // сохраняем
    
    console.log(counter == 9 ? "Да" : "Нет");
    Ответ написан
  • Как просчитать "свободную" орбиту для своего спутника?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Основными организациями являются: ЦУП (РФ), NORAD (США и Канада, так что без VPNа не получится) и ESA (Европа).

    Для расчета орбиты спутника используются сложные методы аэрокосмической инженерии и астродинамики. Основным параметром является высота орбиты, которая влияет на период обращения спутника вокруг Земли. Для более сложного расчета, включающего взаимодействие с другими спутниками, используется компьютерное моделирование, включая алгоритмы предсказания столкновений. Вообще за помощью в расчете орбит лучше обратиться в профильный ВУЗ типа МАИ и т.п., либо можно попробовать напрямую в Роскосмос, или какой-нибудь СПУТНИКС и т.д..
    Ответ написан
  • Как создать модуль выполнения тасков и начисление опыта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, обновление опыта и поинтов после добавления задачи в список выполненных не работает, потому что вы делаете 2 последовательных вызова метода user.save(). Метод save() возвращает промис, который представляет собой будущий результат асинхронной операции. Попробуйте вместо двух вызовов save() объединить всё и сделать в одном.
    Ответ написан
    Комментировать
  • Почему ChatGPT зачеркнул текст?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это markdown. Аналогично текст, обрамленный символами *, будет показан курсивом. Поэтому вопросы/ответы вида "вычисление 2*2*2" будут выглядеть как "вычисление 222".

    Видя такие визуальные искажения, нужно понимать, что там есть невидимый символ типа * или ~, который автор (вы или нейросеть) печатал не как служебный.
    Ответ написан
    Комментировать
  • Регулярное выражение огрнаичение чисел только 4 и от 1900 до 2100?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    От 1900 до 2100:
    spoiler
    ^(19[0-9]{2}|20[0-9]{2}|2100)$
    Пример:
    let regex = /^(19[0-9]{2}|20[0-9]{2}|2100)$/;
    let test = regex.test("2000"); // возвращает true
    let test2 = regex.test("1899"); // возвращает false

    А если надо от 1990 до 2100 (в вопросе у тебя нашел как минимум три опечатки), то вот:
    spoiler
    ^(199[0-9]|20[0-9]{2}|2100)$
    Ответ написан
    Комментировать
  • Как отсортировать массив по значению?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужно преобразовать твой объект в массив, тогда можно сортировать штатной функцией.
    spoiler
    var data = {
        "ID": "414",
        "ELEMENT": {
            "5333": {
                "ID": "5333",
                "sort": 300,
            },
            "5334": {
                "ID": "5334",
                "sort": 500,
            },
            "5335": {
                "ID": "5335",
                "sort": 100,
            }
        }
    }
    
    // Преобразование объекта в массив
    var elementsArray = Object.keys(data.ELEMENT).map(function(key) {
        return data.ELEMENT[key];
    });
    
    // Сортировка массива по sort
    elementsArray.sort(function(a, b) {
        return b.sort - a.sort;
    });
    
    // Выводим массив в консоль
    console.log(elementsArray);

    А сортировка объекта просто не имеет смысла, т.к. порядок ключей (например, при переборе) там не гарантирован.
    Ответ написан
    Комментировать
  • Регулярные выражения: как найти слово с начинающееся с цифры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Тут разные подходы могут быть.

    Можно перечислить все символы в артикле:
    \b(\d[\d\w.-]*)
    (числа, латинские буквы, дефис, точка)
    Если нужны русские, их нужно отдельно вписать по типу А-Яа-я.

    Также можно использовать выражение "всё кроме". Например, "кроме пробела":
    \b(\d[^ ]*)

    В общем виде будет как-то так:
    preg_match('/\b(\d[^ ]*)/', $product->name, $matches);
    Ответ написан
    1 комментарий
  • Уход во время испытательного срока, нормально ли это?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ты можешь уйти в любое время, включая испытательный срок. Ты не привязан к компании навечно. Но учти, что профессиональный мир мал, и репутация важна. Если часто уходить посреди проектов, это может повредить твою репутацию. Впрочем, если тебе пришло предложение, лучше рассмотри его. Просто делай всё красиво и вежливо.
    Ответ написан
    Комментировать
  • Насколько имеет смысл проводить тестирование на локалхосте?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Тестирование на локалхосте может быть полезным в определённых случаях, но, как правило, оно используется в более ранних стадиях процесса разработки. Оно полезно тем, что у вас полный контроль. Скажем, мы можете устроить системе какую-то бяку или стресс-тест, чего нельзя делать на реальном сервере. То есть больше возможностей для экспериментов. Вы можете залезть в БД и что-нть поменять там, не боясь поломать.

    Если "локалхост часто падает", то это и может быть причиной такого требования. Ведь если реальный сайт (или что там у вас) будет часто падать, то заказчику это явно не понравится.

    Короче, у всего есть плюсы и минусы. Как по мне, тестирование на локалхосте должно быть либо на ранних этапах (когда сайта нет), либо как дополнение к более плотному и всестороннему тестированию. И если локалхост часто падает, то значит явно требуется вмешательство разработчиков. Выяснить когда и при каких условиях падает - по сути и есть ваша задача, как тестировщика.
    Ответ написан
    Комментировать
  • Можно ли в PHP из дочернего процесса создавать еще дочерние процессы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В PHP можно создавать процессы внутри процессов, но есть некоторые нюансы, которые следует учитывать.

    Когда ты вызываешь pcntl_fork(), ОС создает копию текущего процесса. Этот новый процесс наследует от родительского процесса все открытые файлы и соединения. Это включает в себя все файлы, открытые с помощью popen(), fopen(), сокеты, соединения с базой данных и т. д.

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

    Если ты хочешь использовать popen() или другую функцию, которая создает новый процесс или открывает новое соединение, в дочернем процессе после вызова pcntl_fork(), ты должен убедиться, что родительский процесс не закрывает этот файл или соединение до тех пор, пока дочерний процесс не закончит его использование.

    Кроме того, ты можешь столкнуться с проблемами с буферизацией вывода. Функции вроде popen() обычно буферизуют свой вывод, и если ты не очистишь буфер перед тем, как завершить процесс, ты можешь потерять часть вывода. Ты можешь использовать функции вроде fflush() для очистки буфера перед завершением процесса.
    Ответ написан
    1 комментарий
  • Как найти числа в списке после символа «:» с помощью регулярного выражения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    import re
    
    data = """
    1 ) София Захарова : 322 221 929 монет
    2 ) Диана Зайцева : 123 543 монеты
    3 ) Семен Соколов : 199 монет
    4 ) Вадим Новиков : 18 монет
    5 ) Игорь Валеев : 5 монет
    """
    
    # Регулярное выражение для поиска чисел после ":"
    pattern = r":\s*([\d\s]+)"
    
    # Поиск всех совпадений
    matches = re.findall(pattern, data)
    
    # Преобразование результатов в список чисел
    numbers = [int(match.replace(" ", "")) for match in matches]
    
    print(numbers)
    Ответ написан
    1 комментарий
  • Не работает расширение chrome?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Попробуй такой манифест
    {
      "manifest_version": 3,
      "name": "My Extension",
      "version": "1.0",
      "permissions": [
        "activeTab", "scripting"
      ],
      "action": {
        "default_popup": "popup.html"
      },
      "background": {
        "service_worker": "background.js"
      }
    }
    Такой popup.js
    document.getElementById("myButton").addEventListener("click", myFunction);
    
    function myFunction(){
        chrome.runtime.sendMessage({command: "runCode"});
    }
    И такой background.js
    chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
      if (message.command === "runCode") {
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
          chrome.scripting.executeScript({
            target: {tabId: tabs[0].id},
            function: functionToInject
          });
        });
      }
    });
    
    function functionToInject() {
      document.querySelector("#APjFqb").value="123";
    }
    Ответ написан
    Комментировать
  • Почему не выводится значение и название локальной переменной?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Всё выводит.
    Перепроверьте здесь: https://rextester.com/l/lua_online_compiler
    Ответ написан
  • Как получить размер объекта userdata?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Никак. Это объект среды. Если среда вам подконтрольна, то в самом объекте и реализуйте функцию типа GetSize(), которую можно будет вызывать из Lua.
    Ответ написан