• Почему синтаксическая ошибка в формуле Гугл Таблиц?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    =REGEXREPLACE(TEXT(C2221),"\D+", "")
    Ответ написан
    3 комментария
  • Не могу понять этот код?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Начальное значение - это первый элемент массива individualScores.
    И в этом коде даже не важен порядок перебора, так что начального значения, можно сказать, нет вовсе. То есть score - это просто один из элементов массива в каждой из итераций цикла.

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

    Ещё желательно вопрос сделать более специфичным, чтобы из заголовка было понятнее, о чём конкретно вопрос. Это сложно, но надо учиться. Например, так:
    "Откуда берётся начальное значение в цикле for in?"

    Ну и последнее: писать небрежно и без запятых - это неуважение к отвечающим. Видно, что ты даже не перечитал собственный вопрос, слова повторяются дважды и не складываются в предложение, даже если проставить запятые. Поэтому будет меньше желающих ответить. Отвечаю лишь потому, что вопрос слишком простой.
    Ответ написан
    4 комментария
  • Муки выбора ноутбука. Что взять?

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

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

    Нужен ноут для дома

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

    Что-то быстро засерфить можно и со смартфона. Имхо.
    Ответ написан
    Комментировать
  • Как создать код на javascript?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    let is_privet, is_poka //для запоминания результатов поиска
    let arr = document.querySelectorAll("div#asd-container .asd") //места поиска
    if (arr) arr.forEach(div => { //ищем указанные тексты
      if (div.innerText == "Привет") is_privet = true;
      if (div.innerText == "Пока") is_poka = true;
    });
    if (is_privet && is_poka) { //выполняем целевой код
      document.querySelector('[class="btn btn--close"]').click();
    }
    Ответ написан
    1 комментарий
  • Какие показатели удержания хороши?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Хороший - понятие относительное, а не абсолютное. То есть оно имеет значение только в сравнении с чем-то:
    • либо с другим сервером, к аналитике которого также есть доступ
    • либо с этим же сервером, но в прошлом/будущем

    То есть "хороший" = "лучше, чем что-то другое".
    Думаю, средней нормой по больнице можно считать 20% или около того.
    Ответ написан
    Комментировать
  • Как равномерно размешать строки?

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

    Сначала выясняем, какая строка больше, сравнив length1 и length2. Какая больше, в той и будем растворять.

    Например, путь length1 >= length2 (пример с "hello world"). Тогда посчитаем, сколько символов чередовать: x = Math.round(length1/length2). Далее в цикле берём x символов из исходной строки, затем 1 символ из строки с невидимками. И так до конца, пока строки не кончатся. В цикле склеиваем эти кусочки в результирующую строку.

    Если же length1 < length2, то всё то же самое, только берём 1 символ из исходной и x из строки с невидимками.

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

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

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

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

    P.S. А вообще обычно оказывается "цифры перепутал" или "забыл элементарную штуку" и т.п. Удачных поисков!
    Ответ написан
    Комментировать
  • Какой алгоритм лучше использовать для нахождения всех перестановок?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сначала считаешь количество "мест" и составляешь массив возможных цифр: 0, 2, 9
    Причём, для каждой цифры также нужно запомнить, сколько её повторять. В данном примере "2" можно повторить дважды.

    Далее в цикле или рекурсией:
    на первом месте может быть 0,2,9
    на втором месте - уже зависит от первого места (если первое 0, то второе - 2,9, а если первое 2, то второе 0,2,9 и т.д.)
    на третьем месте снова выбираешь из оставшихся.
    Вот в таком порядке и сможешь вывести все перестановки.

    Естественно, код приводить не буду, так как вопрос про алгоритм. Осталось написать в виде текста программы. Удачи)
    Ответ написан
    Комментировать
  • Как сделать нормальное сохранение?

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

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

    В общем, тема сложная. Если будешь дальше гуглить, то используй слово "сериализация".
    Доки: docs.unity3d.com/Manual/script-Serialization.html
    Ответ написан
  • Как соединить 2 человека на расстоянии 50 метров для голосовой связи?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    TeamSpeak, очевидно.

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

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

    Говоря о функциях или процедурах, акцент ставится на сам механизм вызова - указатель текущего места выполнения помещается в стек, управление передаётся функции, и по её завершении указатель восстанавливается из стека и выполнение программы продолжается с того же места. Таким образом, имеются в виду два момента: 1) сам вызов функции 2) расположение тела функции в другом месте памяти. То есть функция - по сути подпрограмма.

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

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

    И если ты склонен к тому, чтобы стать программистом, то и надо изучать программирование в первую очередь. Причём не конкретный язык, а программирование в целом на примере какого-то конкретного языка, который тебе больше нравится. Хорошо зная основы, пересесть на другой язык не составит труда, особенно со строго типизированного (компилируемого). Как по мне, C++ посложнее, но синтаксис похож, так что бери любой. Естественно, до этого нужно изучить (или уже знать) информатику и математику - основы основ. А Unity - это лишь вишенка на торте.

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

    Ну а если переживаешь за хорошую зарплату (доход), то беги из геймдева. Это область не про деньги, а про счастье. Туда идут за удовольствием. Деньги платят в других сферах, например в разработке банковского софта. И не смотри на супер успешные хиты, смотри на несостоявшиеся и незаконченные проекты. Хотя как ты на них посмотришь? О них же никто не знает и никогда не узнает.)
    Ответ написан
  • Как определяют реальный IP адрес запроса?

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

    А вообще другой сайт может и не знает реальный IP адрес, а просто видит, что запрос идёт именно с прокси. То есть сайт знает список прокси, и видит, что IP запроса совпадает с одним из прокси. Либо сайт сканирует конкретные или все порты на IP запроса с целью обнаружить там прокси. Как вариант)

    И ещё сайт может банить не за прокси, а за сам факт париснга. Как он обнаруживает парсинг - это совсем другая история.
    Ответ написан
    5 комментариев
  • Почему при многократном вызове функции нет многократно возвращаемых значений?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    function password(num) ----> фикс
      num = (num or 0) * 5 ----> новая логика разных слов
      local vars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
      local strlengths = string.len(vars)
      print(strlengths)
      local vars1 = ''
      math.randomseed(os.time() + num) ----> фикс
      arrys = {}
      for vars2 in vars:gmatch"." do
        table.insert(arrys, vars2)
      end
      for i = 2, strlengths do
        vars1 = vars1 .. arrys[math.random(2, #arrys)] 
      end	
    return vars1
    end
    
    list={}
    for i=1,10 do
      list[i]=password(i) ----> фикс
    end

    P.S. В саму функцию я не вникал. Если автор вопроса уверен, что она работает хорошо, то и с моими правками будет работать тоже неплохо, во всяком случае для целей получения разных слов. :)
    Ответ написан
    Комментировать
  • Firefox "запоминает" набор установленных плагинов или дополнений?

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

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

    Следовательно, document.getElementById('gobl3') === null

    Следовательно, элемента с id "glob3" не существует, он не найден.
    (Конкретный id зависит от номера строки, в которой произошла ошибка).
    Ответ написан
    6 комментариев
  • Замена JS на Lua?

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

    Можно попробовать какой-нибудь плагин или библиотеку. Предположу, что её название будет lua.js или что-то подобное. Но зачем Lua? Из-за лени учить новый язык? Ну, такое)
    Ответ написан
    Комментировать
  • Как сделать видимы друг другу две подсети на zyxel usg60?

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

    А WiFi-роутер использовать, как свитч (т.е. не использовать порт WAN и отключить DHCP). Тогда все WiFi-клиенты будут получать тот ip адрес, который выдаст DHCP на Zyxel.
    Ответ написан
  • Как перебрать дочерние элементы внутри цикла forEach?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зачем forEach? Можно как-то так:
    while (el.className !== "parent") el = el.parentNode;
    if (el) { ......
    Ответ написан
  • Раздача интернета по сети, не видит именно Windows 7 Pro?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Поставьте на Windows-7-Pro-ноут программку под названием Ping Plotter (по сути это tracert в бесконечном цикле в виде красивых графиков). Она будет собирать данные на протяжении длительного времени. Затем можно будет сравнить проблемные периоды без интернета с беспроблемными, характер и периодичность разрывов, а также может помочь выявить проблемный узел.
    Ответ написан
    Комментировать