• Как синхронизировать пулю с сервером?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это очень сложная задача (с точки зрения геймдизайна).

    Решение обычно сводится либо к отсутствию пули, либо к самонаводящейся пуле, либо к отсутствию точной синхронизации пули между клиентом и сервером. Ну либо в требованиях к игре нужно прописать крайне низкий пинг и отсутствие потерь пакетов.
    Ответ написан
    1 комментарий
  • А почему бы не сделать поиск по своим «лайкам», ответам и вопросам?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Хм...
    6177f7b5d16ee642371943.png

    Да, есть такое браузерное расширение. :)
    Ответ написан
    4 комментария
  • Chrome extension worker то работает, то нет?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сделай background.js таким:
    try {
      importScripts("bg.js");
    } catch (e) {
      console.error(e);
    }

    А вот bg.js - уже обычный js-файл, перенеси туда все фоновые обработчики, и будет как и на 2-й версии манифеста.
    Ответ написан
  • Почему set PATH не работает?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    setx /M PATH "%PATH%;C:\Windows\twain_32\CNQL25"
    for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set save_temp_path=%B
    setx PATH "%save_temp_path%;C:\Windows\twain_32\CNQL25"
    Ответ написан
    8 комментариев
  • Как эффективно найти все объекты, у которых в названии есть все заданные слова?

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

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

    Если подумать, можно ещё что-нибудь наоптимизировать. Но это уже надо знать больше нюансов конкретно вашей задачи.
    Ответ написан
    Комментировать
  • Хочу написать фильтр мата, есть идеи как это можно реализовать?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это война снаряда и брони, то есть она бесконечна. Её невозможно выиграть. Как только вы улучшаете броню, противник в ответ улучшает калибр снаряда, и так по кругу. Лучшим решением будет попытаться остановить войну, помешать её течению, а не наращивать мощь вооружения.

    Один из способов сделать это - перестать воевать, то есть сдаться. Тогда "игра" закончится. Те, кто пытался "победить систему", будут объявлены победителями и потеряют интерес к дальнейшей борьбе. Хотя останутся и те, для кого мат - это норма, и будут продолжать использовать его.

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

    Ещё приём - в дополнение к предыдущим - отсроченное наказание (модератором). "Игрок" не будет получать немедленное подкрепление в виде "молодец, обошёл фильтр", а будет вынужден ждать жюри. Однако ждать никто не любит, это тоже сильно бьёт по мотивации продолжать игру в сопротивление системе. Поэтому многие "партизаны" перейдут на сторону добра, ибо скучно.
    Ответ написан
    Комментировать
  • Как завершить абсолютно все процессы в Windows?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для "прикола" достаточно завершить explorer.exe. Это уберёт панель задач и рабочий стол.
    Ответ написан
    2 комментария
  • Какое событие отвечает за изменение статуса пользователей?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    Оказывается, с кодом всё в порядке. Необходимо было в настройках бота включить некоторые разрешения.
    6174e076caf84721934191.png
    Ответ написан
    Комментировать
  • Как сделать прогресс бар с отрезками?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для поиска ошибок в существующем коде нужно заняться его отладкой.
    Если совсем не знаешь, с чего начать, то начни с самого понятия отладка.
    Ну или жди телепатов.
    Ответ написан
    2 комментария
  • Как установить nil переменной в тернарном выражении Lua?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Это не совсем тернарный оператор, а именно комбинация and и or.
    Выражение:
    A and B or C
    аналогично тернарному оператору (которого в Lua нет), только если B истинно.
    (доказательство)

    Для начала вспомним некоторые правила синтаксиса Lua:
    • and возвращает первый операнд, если он ложный, иначе второй.
    • or возвращает первый операнд, если он истинный, иначе второй.
    • and имеет выше приоритет (т.е. выполняется первым).
    • Ложными в Lua являются только false и nil

    Теперь построим таблицу истинности результатов:
    616d9c7ad77a1439930797.png

    Поэтому решение такое:
    local res = ((i ~= k) and 2 or nil)
    Ответ написан
    Комментировать
  • Как настроить notepad++ на правильное отображение псевдографики?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Псевдографика обычно затачивается под конкретный шрифт, под конкретные условия просмотра, а не универсальные. Например, под конкретный форум или сайт, или под конкретный (популярный) редактор текста. А что может быть популярнее, чем блокнот?

    Если говорить про прошлый век, то в текстовым режиме не было ничего, кроме моноширинных шрифтов. Следовательно, ваш случай был создан позже, поэтому TC и Far не справляются.
    spoiler
    К слову, в ТС можно поиграться с отображением, попробуйте разные опции:616b75178241e550980969.png
    Ответ написан
    Комментировать
  • Как сделать инкремент свойству объекта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно так:
    obj[key] = (obj[key] || 0) + 1;

    Или так:
    obj[key] ||= 0; obj[key]++;
    Ответ написан
    Комментировать
  • Как можно найти путь к данным вот в этом фрагменте?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если код и связанные с ним переменные спрятаны в замыкании, то к ним нельзя получить доступ из глобального пространства имён. А консоль браузера работает как раз в глобальном пространстве.
    Пример:
    (function() {
      let x = 123; //Нельзя получить доступ извне, т.е. из глобала
      window.onclick = ()=>console.log(x++);
    })();

    Помимо дебаггера можно просто вставить своего "шпиончика" в код:
    x = this;
    Где x - это глобальная переменная. Далее после выполнения кода, ссылка на this останется в переменной x и будет доступна из консоли:
    console.log(x);
    Ответ написан
  • Как поменять у всех файлов в каталоге вторую букву на #?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А разве банальная маска не сработает?
    rename ??*.* ?#*.*
    Ответ написан
    1 комментарий
  • Как между каждой строкой в файле ahk вставить еще кое-что?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно в обычном текстовом редакторе типа Notepad++ заменить все
    \n
    на:
    {Enter}\n
    Sleep 100\n
    SendInput,
    Ответ написан
    Комментировать
  • Как рассчитать размеры блока с сохранением пропорций не превышая заданной ширины и высоты?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Чистая математика.

    Предлагаю такой алгоритм. Сначала считаем, превышен ли размер (по каждой оси отдельно). Если превышен, то считаем коэффициент превышения:
    2800/1000 = 2.8
    700/400 = 1.75
    Если не превышен, то коэффициент будет равен 1.
    Далее смотрим, какой из коэффициентов больше (функция Math.max). Выбираем его.
    И если он больше 1, то делим ширину и высоту прямоугольника на этот коэффициент.
    Пропорции будут примерно сохранены (после округления). И в поле тоже влезет.

    Сорри, что без кода, но ведь и в вопросе кода нет. ;)
    Ответ написан
    1 комментарий
  • Как использует ОЗУ бесконечный цикл?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не должно влиять на ОЗУ никак. К слову, ОЗУ - это оперативная память (RAM). То есть нагрузки на оперативную память точно нет.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    У вас как минимум точка не экранирована, а значит это "любой символ". Но это так, к слову.

    А ответ такой:
    def URL = "sdfgsdfg https://inclouds.bizmail.ru hgfghfhgfhgf gfhgf"
    
    print(URL.findAll(/(?<=:\/\/)[\w\d.]+/))

    Хотя и он далёк от совершенства. Более точные условия задачи помогут его улучшить.
    Ответ написан
    Комментировать
  • Существует ли ЯП с подобным синтаксисом логических операций?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если оптимизировать скорость, то нужно использовать силу хеш-таблиц, поиск по которым занимает примерно O(1):
    const NEEDED_STATUS = { complete: true, deleted: true, updated: true}
    if (NEEDED_STATUS[status]) { /*... */ }

    Однако стоит иметь в виду два момента:
    1. Это экономия на спичках.
    2. Прирост производительности начнётся примерно, когда количество вариантов будет больше 4. Реальный прирост будет при очень большом количестве вариантов.

    Хеш-таблицы (или возможность из создания) есть практически в любом ЯП.

    Если же оптимизировать красоту и понятность кода, то я бы предложил такое:
    let is_complete = (status === 'complete');
    let is_deleted = (status === 'deleted');
    let is_updated = (status === 'updated');
    if (is_complete || is_deleted || is_updated) { /*... */ }

    При этом общий размер кода вырастет, но само условие станет более компактным и понятным. Кроме того, зачастую вот эти is_что-то нужны в других местах кода, которые тоже будут выглядеть опрятно, и в целом общее количество кода порой может даже уменьшиться.
    Этот приём возможен в любом ЯП.
    Ответ написан
    Комментировать
  • Работать в выходные или нет?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучший отдых - это смена вида деятельности.

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

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