• Как реализовать вместо рандома очередь, 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.
    Ответ написан
  • Как сделать так, чтобы после перезагрузки страницы данные не исчезали?

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

    Что касается уникальности, есть нюансы, но общий принцип един - сначала определяешь некий "отпечаток" (уникальность) пользователя, затем отправляешь его на сервер, и сервер уже решает, считать его или нет. Например, был ли уже этот пользователь в этот день или какой-то интервал времени, в течение которого повторные посещения уже не учитываются. Будет ли в этот "отпечаток" включён ip пользователя, или это вообще будет уникальный токен, выданный по логин+пароль, решать тебе.

    На клиенте можешь кешировать какие-то данные, например, последнее обращение к БД, и если оно было недавно, то не повторять его снова. В браузере это можно сделать, например, с помощью localStorage. Но это уже своего рода оптимизация, а она будет зависит от логики твоего счетчика (что именно считаешь).
    Ответ написан
    Комментировать
  • Как задать условия для промежутков времени в js?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) с 09.00 до 10.59
    (hour >= 9 && hour < 11)

    2) с 11.00 до 16.59
    (hour >= 11 && hour < 17)
    Ответ написан
    Комментировать
  • Какие виды сетевых атак можно выявлять при помощи эвристических методов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зачем эвристика, когда есть Honeypot?

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Я хочу чтобы J3 не превышал сумму C3
    =СУММ(D3:I3) ячейка J3
    =ЕСЛИ(СУММ(D3:I3) > C3; C3; СУММ(D3:I3))

    и чтобы в ячейках D3 по I3 я не смог ставить сумму больше чем в C3.
    А это уже скриптами нужно. Короче, это сложно, да и не нужно. Проще условным форматированием раскрасить в красный, чтобы видеть, что число введено с ошибкой. По формуле для всего столбца D:
    =D1 > C1
    Ну и красный цвет указать.
    Ответ написан
    Комментировать
  • Почему происходит сбой загрузки во всех браузерах?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вирусы, судя по всему.

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

    Поэтому профилактика лучше лечения. То есть лучше не скачивать и не запускать сомнительный софт, игры и пр.

    Что же касается лечения, то чистить комп от остатков вирусов можно (и нужно). Но полной гарантии нет. Как мы помним, антивирус видит не все вирусы. Просто помните, что какой-нибудь downloader однажды попав на комп может там и остаться надолго, а вы будете отлавливать лишь то, что он скачивает. Полная гарантия очистки есть только при полной переустановке системы (с чистого листа). Либо откат на чистый слепок системы, если вы практикуете бекапы. И далее уже желательно соблюдать профилактические меры - не устанавливать и не запускать ничего сомнительного.
    Ответ написан
    Комментировать
  • Обзор с точки зрения авторского права?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Обзор на фильм не является использованием фильма. Так что автора можно не указывать. Конечно, если ты не будешь утверждать, что фильм твой.

    Всякие там скриншоты из фильма, опять же, можно свободно добавлять в информационных целях. Обзор на фильм вполне себе согласуется с такой целью. Конечно, в теории суд может посчитать иначе, но это только в теории. Здравый смысл подсказывает, что:
    - Выложил весь фильм = украл.
    - Выложил скриншотики, чтобы рассказать о фильме = свободное использование (ГК РФ Статья 1274).
    По сути это аналог fair use в США.

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