Задать вопрос
  • Как настроить геолокацию места в WhatsApp?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Написать собеседнику текстом в чате.
    Ответ написан
    Комментировать
  • Как правильно оформить код?

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

    При if и if-else нужно как бы помнить все предыдущие if и держать их в голове. При отбрасывании хвоста всё наоборот - разум очищается, отработанные мысли выкидываются, и в голове обычно 1-2 условия нужно держать.

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

    Для if:
    Конструкция
    if (condition_A) {
      instruction_A;
      if (condition_B) {
        instruction_B;
        if (condition_C) {
          instruction_C;
          .....
        }
      }
    }

    Превращается в (вложенности уходят):
    if (!condition_A) return;
    instruction_A;
    if (!condition_B) return;
    instruction_B;
    if (!condition_C) return;
    instruction_C;
    .....
    Для if-else:
    Конструкция
    if (condition_A) {
      instruction_A;
    } else if (condition_B) {
      instruction_B;
    } else if (condition_C) {
      instruction_C;
    } else if .....

    Превращается в обычный switch, либо снова в отбрасывание хвоста:
    if (condition_A) {
      instruction_A;
      return;
    }
    if (condition_B) {
      instruction_B;
      return;
    }
    if (condition_C) {
      instruction_C;
      return;
    }
    if .....


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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    (\d\d\d[\w\s]+&)
    <br>\n\1
    картинка
    62aa0eff84ead332160184.png

    Или так:
    (\d\d\d[\w\s]+(?:&amp;|-))
    <br>\n\1

    Хотя можно и просто:
    (\d\d\d\s)
    <br>\n\1
    Ответ написан
    Комментировать
  • Как посчитать количество единиц, где формулой считаются строки по заданным параметрам?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    =СУММЕСЛИМН('Вводные данные'!M4:M565;'Вводные данные'!M4:M565;"=1";'Вводные данные'!P4:P565;">0";'Вводные данные'!P4:P565;"<3500")
    Ответ написан
    3 комментария
  • Почему событие отслеживается только при клике в определенном месте div?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    ".modale_cart" - это другой див, а не тот, который содержит иконку.
    Где-то в вашей структуре вложенности дивов есть элемент, который тоже отслеживает клик, но не передаёт его дальше по цепочке, а как бы съедает (оставляет инфу о клике только себе, монопольно).

    Ищите, смотрите другие обработчики. Наверняка там что-то типа:
    .stopPropagation()

    P.S. Ссылка по теме: https://learn.javascript.ru/event-delegation
    Ответ написан
    Комментировать
  • Чем можно заменить a href?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    div, или input, или button, или что угодно.
    Ответ написан
    Комментировать
  • Как определиться с путём развития в GameDev на Unity?

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вместо int используй long :)

    long x = 2147483648L;
    Ответ написан
    Комментировать
  • Как создать правило ublock для 'section>?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    ##section
    или
    ##section[itemprop="aggregateRating"]
    Ответ написан
  • Как собрать в массив информацию из DOM-элементов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Например так:
    let b = Array.from(a.querySelectorAll('div.name'));
    let c = Array.from(a.querySelector('div.name'));
    
    //a[0].innerHTML
    //b[0].innerHTML
    //c.innerHTML
    Ответ написан
    Комментировать
  • Как сделать условное форматирование при определенных условиях?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    =IF(("01.01."&B169)-NOW()>100*365,25;1;0)
    Примерно так.
    Ответ написан
    3 комментария
  • Почему строка инициализируется как число?

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

    Решение:
    После splice добавьте: i--;

    Либо перебирайте массив с конца:
    for(let i = l.length-1; i >=0; i--) {
    Ответ написан
  • Восстанавливает данные мошенник?

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

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

    Если же реально наткнулись на неадеквата, то включите заднюю. Это тоже будет не честно, но с неадекватами можно. Скажите, что передумали вообще пользоваться его услугами и хотите назад диск. Если вдруг он начнёт песню "мы так не договаривались", то сразу и подловите его на двойных стандартах, возвращая к предыдущему абзацу.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Файрволл или роутер.

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Это сложная логика, регулярным выражением такое не сделать. Нужно писать свой небольшой скрипт-парсер.

    Либо (если с программированием туго) воспользоваться другими инструментами. Например, Google Sheets. Чтобы понимать все шаги и как работают формулы, сделаем через множество столбцов:
    1. Копируем текст в гугл-таблицу.
      spoiler
      6291ce1d7fad8756144496.png

    2. В следующий столбец вводим формулу =LEFT(A1;4), которая возьмёт нужное нам количество символов.
      spoiler
      6291ce68e6bfe211640261.png

    3. Растягиваем (распространяем) эту формулу вниз, чтобы заполнить весь столбец.
      spoiler
      6291cebdac003303558314.png

    4. В следующем столбце аналогично вводим и растягиваем формулу =COUNTIF(B:B;B1)
      spoiler
      6291cf625c69e029081487.png

    5. Далее, аналогично вводим и растягиваем формулу, которая выведет нам нужны строки по условию =IF(C1=1;A1;"")
      spoiler
      6291cfcda3e4d756517869.png

    6. Осталось скопировать последний столбец обратно в Notepad++ и убрать пустые строки.
    Ответ написан
  • Как сделать шаблон в Notepad++?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Найти: (\d+)-([^:\n\r-]+?):(жен|муж)
    Заменить на: номер \1, имя \2, пол \3
    spoiler
    6291c7c519226767581354.png
    Ответ написан
    Комментировать
  • Почему сайт видит мою страну, когда я использую VPN?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Там у вас в инструкции:
    net.ipv4.ip_forward=1

    Насколько я понимаю, это значит, что вы соединяетесь через VPN, и таким образом обходите РКН (со стороны РФ), но обратный ip-адрес указан - ваш. Этим достигается, что через VPN идут только запросы, а ответы приходят вам напрямую, минуя VPN-сервер. Это и скорость увеличивает, особенно файлообмен. Но при этом ваш настоящий ip становится видимым посещаемым сайтам. Можете убедиться на 2ip.ru, например.

    То есть вы как бы попросили друга отправить письмо, а друг указал на конверте в качестве отправителя - вас, и ответ приходит непосредственно в ваш почтовый ящик. В случае же с Proton VPN, друг указывает на конверте свой адрес и сам получает ответное письмо, а затем несёт вам.
    Ответ написан
    4 комментария
  • Как написать правильное регулярное выражение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Попробуйте заменить \s на [ \f\n\r\t\v]
    Если не поможет, то нужно в самой среде, где используются регулярки, искать способ многострочного поиска.
    Ответ написан
    Комментировать
  • Как заблокировать отдельный Div с рекламой?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Расширение uBlock Orign, но желательно уметь в CSS и HTML, чтобы блочить самому.
    Ответ написан
    Комментировать
  • Почему при попытки открыть страницу появляется сообщение что это фишинговая страница?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если это Google Chrome, то и спрашивать надо у Google Search Console. Там будет ответ.
    А здесь можно лишь гадать.
    Ответ написан
    Комментировать