• Можно ли запустить игру с облачного хранилища?

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

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

    А что, могут быть какие-то ещё варианты формул?
    Ответ написан
    Комментировать
  • Как сохранить класс у выбранных элементов — на которые был сделан клик?

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

    Сначала нужно как-то помечать элементы, чтобы каждый из них можно было найти после перезагрузки страницы. Например, можно каждому дать уникальный id. Если это элемент с товаром, например, то часть id можно сделать с артикулом или добавить ещё атрибут.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это делается очень просто. Для этого нужно знать лишь основы регулярных выражений. Поэтому нужно сделать следующее:
    1. Вбить в гугл "регулярные выражения" и проследовать на Википедию, ознакомиться со статьёй.
    2. Далее вбить в гугл "регулярные выражения php" и проследовать к документации PHP, изучить нужные функции из API.

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

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

    Также локальные переменные внутри функции живут только в интервале времени, пока функция выполняется. И как только она завершает работу ("}" или "return"), локальные переменные (на стеке) уничтожаются.

    Даже если функция содержит другую функцию (и конечно же вызывает её), это не противоречит данному правилу, которое работает по умолчанию (т.е. даже без замыканий).

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

    Суть замыкания в том, что возникает как бы петля на стеке, запрещающая удалять временные переменные, на которые всё ещё ссылаются из вышестоящей области видимости. Это возможно, только если ЯП поддерживает замыкания, иначе такое будет считаться просто ошибкой.

    Так что в вашем примере и правда нет замыкания.
    Ответ написан
  • Права на Gif созданные в онлайн конструкторе?

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

    Вы можете добровольно передать часть прав (кроме факта авторства) кому угодно, например, заключив договор.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не устанавливается windows 10?

    Да, не устанавливается, судя по вашему описанию ситуации.

    Проблема может быть, в чём угодно.
    Если хотите конкретный ответ, задайте правильный вопрос.
    Ответ написан
    Комментировать
  • Как удалить лишние пробелы без объединения строк?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    \s - это любой пробельный символ, включая символ перевода строки.

    Достаточно заменить его на « » (пробел), и тогда заменяться будут только пробелы.

    Также можно указать не любой пробельный символ в виде \s, а класс конкретных символов в квадратных скобках. Например, пробелы + символы табуляции. Получится так:
    [ \t]{2,}
    Ответ написан
    Комментировать
  • Имеет ли смысл начать использовать серый IP (который извне упирается в провайдера) для домашнего интернета ради безопасности?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Когда компьютер подключён напрямую к Интернету, и у него белый ip, то к такому компьютеру могут подключаться извне. Точнее, могут "стучаться". Чтобы реально подключиться, должна быть открыта какая-то дверь (порт). Я бы даже сказал, такая дверь должна существовать, пусть даже закрытая, но если двери нет, то ничего не получится.

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

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

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

    В свою очередь, роутер тоже содержит софт, и тоже может иметь дыры. И чтобы перестраховаться вдвойне, можно поставить ещё один роутер на стороне провайдера. Ваш ip станет "серым", как бы внутри локальной сети провайдера, и абы кто уже не сможет на него постучаться.

    Как видно, каждый такой слой защиты, не убирает какую-то конкретную угрозу, а защищает от потенциальных неизвестных угроз, то есть ставится на всякий случай для перестраховки. Каждый очередной слой уменьшает шанс быть успешно атакованным. Однако главная защита - это голова на плечах. Если пользователь сам (по глупости) скачивает вирус и активирует его у себя на компьютере, то никакие серые ip, роутеры и фаерволлы не спасут его от взлома. Такие дела.
    Ответ написан
    1 комментарий
  • Блокировка рекламы на iphone c AdGuard?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Программа надёжная. Надеюсь, речь про AdGuard Pro.
    А информацию куда-то отправляет сама Apple (с этим нужно смириться).
    Ответ написан
    7 комментариев
  • Каким образом лучше подходить к организации файлов на диске?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зависит от того, как проще искать.
    Какой "тег" ощущается более главным, такой и становится главной категорией.

    P.S. В моём случае часто используемые папки биндятся на клавиши 1, 2, 3, 4, - и уже не имеет большого значения, как именно они организованы.
    Ответ написан
    Комментировать
  • Как установить цифровой timezone?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зная timezone сервера, можете получить "чистый" timestamp (зона +0). И далее уже к нему прибавлять или отнимать timezone клиента/запроса.
    Ответ написан
  • Как скрыть значок YouTube?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Приклеить сверху чёрный прямоугольник.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Нужен белый (выделенный) ip.
    Обычно покупается у вашего провайдера за 100-200 рублей в месяц (если такая услуга вообще предоставляется).
    Ответ написан
    Комментировать
  • Как определить что игре не хватает оперативной памяти?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Надёжный способ понять, что причина именно в нехватке памяти - услышать, как шуршит жёсткий диск во время фризов (если файл подкачки не на SSD).
    Ответ написан
    Комментировать
  • Не показывает уведомления,когда стим минимизирован(закрасывает их черными)?

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Да, стоит, но не сильно.
    Вот если быстро деградируете, тогда действительно стоит.

    В целом, чем медленнее, тем меньше ошибок. Подбирайте такую скорость, чтобы качество вас устраивало. Но по мере продвижения к концу жизни будет только хуже.

    И есть ещё такое правило, что переучиваться сложнее, чем учиться правильно с нуля. А учиться с нуля тоже не просто. Так что если результат вас (и ваших адресатов) не сильно расстраивает, то можно просто смириться и забить.
    Ответ написан
    1 комментарий
  • Как найти все запятые кроме тех что в кавычках?

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

    При использовании же именно рег. выражений желательно опираться на какие-то конкретные условия (например, не более одной запятой внутри кавычек). В общем виде это будет уже парсер, а не регулярка. Но даже парсеру придётся определиться с условиями, иначе в общем виде нужно будет уметь разбирать и такое:
    ,1, ','_,2,'text',x'word, ''\'\\word2'

    найти все запятые в этом тексте, кроме тех что в одиночных кавычках

    В таком виде решается просто, если условиться, что нет избытка кавычек, экранированных кавычек и прочей дичи:
    (?:[^,']*'[^']*'[^,']*|[^,']*)(,)(?:[^,']*'[^']*'[^,']*|[^,']*)

    https://regex101.com/r/h1A6ZP/1
    Все внешние запятые будут в первой группе (зелёные на regex101).

    Но если возможна дичь, то придётся изобретать комбайн или отказаться от регулярок.
    Ответ написан
    Комментировать
  • Google Sheets: как с помощью оператора IF при выполнении условия осуществлять несколько действий?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В ячейке B2 нужен тот же IF, с тем же условием, но с другим действием (инкрементом).
    Ответ написан
    Комментировать
  • Как сделать постепенное увеличение урона за отсутствие N-ово кол-ва здоровья?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Введём доп. величины для удобства изложения:
    local startDamage = damage -- Начальное значение на отрезке
    local endDamage = damage * maxMulty --Конечное значение

    Итак у нас есть startDamage, endDamage и percHP. Нам нужно скалировать значение урона от начального до конечного, в зависимости от процента. Показываю на пальцах, как дойти до формулы самому.
    • Очевидно, что когда percHP==1, мы берём startDamage.
    • Очевидно, что когда percHP==0, мы берём endDamage.
    • Что же брать, если percHP==0.5? Очевидно, среднее арифметическое. То есть (startDamage + endDamage)/2, или что то же самое startDamage/2 + endDamage/2

    И здесь уже виден намёк на то, какой будет формула. На 50% мы берём половину от начального и половину от конечного значения. На 60%, очевидно, надо брать 40% от начального и 60% от конечного.
    Значит, формула такая:
    startDamage * percHP + endDamage * (1 - percHP)
    Можно, конечно, подставить теперь сюда ваши переменные, но не советую этого делать, так как в текущем виде формула максимально проста и понятна.

    В мире программирования функцию линейной интерполяции принято называть lerp, хотя это дело вкуса. Тут важно, что она не связана с хп, а пишется в общем виде (немного адаптировал к данному вопросу):
    local function lerp(start_val, end_val, perc)
      return start_val * perc + end_val * (1 - perc) 
    end

    Если объявили эту функцию, то ниже можно будет писать:
    lerp(damage, damage * maxMulty, percHP)

    Если объявить функцию глобально, то можно будет использовать её в прерываниях в любом месте проекта. Глобально объявляется без слова local:
    function lerp(start_val, end_val, perc)
      return start_val * perc + end_val * (1 - perc) 
    end

    Проверка:
    print(lerp(100,400,0.9)) -- 130
    Ответ написан
    3 комментария