Задать вопрос
  • Как разгадать конфигурацию мини-игры с ключами в Hamster Kombat?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    - = пусто
    a-z = плашки
    0 = key

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

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Судя по коду
    lastTime = 0;
    должно быть внутри
    if (millis() - lastTime > loopTime){
    // ...
    };

    Иначе оно раз в цикл принимает значение millis(), потом сразу проскакивает цикл и обнуляется.
    Ответ написан
  • Как применить макрос к нескольким файлам в один клик?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Что-то вроде:
    Sub ProcessFilesInDirectory()
        Dim folderPath As String
        Dim fileName As String
        Dim wb As Workbook
        
        ' Путь к директории
        folderPath = "C:\temp\"
        
        ' Получаем первый файл с расширением .xlsx в директории
        fileName = Dir(folderPath & "*.xlsx")
        
        ' Перебираем все файлы в директории
        Do While fileName <> ""
            ' Открываем файл
            Set wb = Workbooks.Open(folderPath & fileName)
            
            ' Вызываем функцию macros3
            Call macros3()
            
            ' Сохраняем и закрываем файл
            wb.Close SaveChanges:=True
            
            ' Получаем следующий файл
            fileName = Dir
        Loop
    End Sub
    Ответ написан
    1 комментарий
  • Как автоматизировать процесс установки программ на 1000 компьютерв?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Если по-старинке, то ставится на одну машину весь софт, всё настраивается и делается образ акронисом.
    Установить им же, и по сети.
    Ключи должны быть в bios.
    Настройки машины и программ можно накатить обычным скриптом cmd

    PS: я бы автоматизировал это до тех пор, пока это не стало бы так же просто, как позвонить в дверь. Пара лишних действий, даже несколько лишних минут на машину - это плюс месяц работы. Лучше это время потратить на автоматизацию.
    Ответ написан
    Комментировать
  • Как в excel удалить дубликаты с объединением значений соседнего столбца?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Если в Google Sheet:
    =arrayformula(let(
      author;   "@ProgrammerForever";
      keys;       $A$2:$A;
      values;     $B$2:$B;
      
      uni_keys;      sort(unique(FILTER(keys;keys<>"")));
      joined_values; byrow(uni_keys; lambda(key; ЕСЛИОШИБКА(JOIN("; "; filter(values;keys=key)))));
      
      hstack(uni_keys;joined_values)
    ))
    Ответ написан
  • Сколько конкретно битов в одной секции озу?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Конечно они мелкие, а есть техпроцессы ещё мельче

    Не самая ёмкая флешка (на 128Гб), собранная из дискретных транзисторов размерами по 1мм(зернышко проса), будет занимать объём двухэтажного здания с размером комнаты более 10м*10м

    PS: периодически, когда учителем работаю, даю такую задачу ученикам, и с каждым разом даёт более мощный вау-эффект
    Ответ написан
    Комментировать
  • Почему при переносе элементов по DOM происходит их дублирование?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Из документации:
    Description: Insert every element in the set of matched elements after the target.

    Т.е. это не перемещение элемента как таковое, а вставка такого содержимого после каждого элемента из списка. Иначе бы такой элемент вставлялся несколько раз в разные места.
    Ответ написан
    Комментировать
  • Как учитывать рабочее время?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    4 часа в Excel/GSheets это:
    =ваша_дата + 4/24
    Если время работы в пределах 1 рабочего дня, то проверяйте какой час выходит при суммировании. Если больше порога - то ставите верхний порог, а следующая дата - начиная с нижнего порога плюс остаток.
    Что-то вроде:
    =ЕСЛИ(ОСТАТ((A1+B1/24);1)>=18/24; ЦЕЛОЕ(A1) + 18/24; A1+B1/24)

    А если по сути - тут можно порыть в сторону систем счисления и простых линейных уравнений.
    Или сделать ещё проще - с помощью юзерфункции.
    Ответ написан
  • Почему не проходит отладку google apps script?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    let ss = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = ss.getSheetByName("Маршрут");
    let data = sheet.getDataRange().getValues();
    Ответ написан
    Комментировать
  • Почему не удается получить данные методом video.get у некоторых ссылок?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    1) Попробуйте открывать не в браузере, а в постмане; там более чистый запрос - нет кук, можно контролировать заголовки, юзер-агент, реферер и т.п.
    2) Если приходит ответ вида:
    {"response":{"count":0,"items":[]}}
    то, скорее всего, и с токеном и со всем остальным всё ок - что-то не то с данными запроса или с самим ресурсом, который запрашивается. Это 200 ответ, а не ошибка.
    3) Как вариант для проверки - сервис может не отдавать данные по некоторым ip адресам. Предсказать какой будет ip у скрипта невозможно.
    4) Попробуйте сохранить и переиспользовать куки, внедрить в headers нужные заголовки, которые браузер передаёт и т.п.
    5) Перезалейте второе видео, возможно всё-таки есть что-то, что запрещает получать данные по API.
    Ответ написан
    Комментировать
  • Как вывести Сумму из наибольшего параметра веса или объема?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Включаю режим Ванги.
    Отсортируйте массы {0; 50; 100; 200} и объёмы {0; 0,2; 0,6; 1} по возрастанию, берите ВПР с последним параметром 1, он автоматически возьмёт ближайшее большее или равное.
    Ответ написан
  • Гугл таблицы. Как зафиксировать гиперлинк на конкетруную строку?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Добавьте параметр range к ссылке. Там есть номер строки:
    ...edit?gid=0#gid=0&range=A7
    Ответ написан
  • Как выразить переменные из формулы?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    wolframalpha
    A = P * (1 + r/n)^(n*t) solve t
    Ответ написан
    Комментировать
  • Почему перестали работать usb порты?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Проверить:
    1) Драйверы
    2) Отключать устройства и подключать по одному
    3) USB-порт снаружи
    далее - в сервисе, после разборки
    4) Плaта USB (если есть) - пайка и целостность USB-порт
    5) Микросхемы свитчей, и их обвязка
    6) Хаб, внешний или в процессоре

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

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Для каждого ввести статусы - выключено, запущено; т.е. нужна простая машина состояний.
    Кнопки меняют статусы и пишут данные. Вместо кнопок можно onEdit+галка.
    Триггер по времени (раз в минуту) обновляет данные.

    Если нужно готовое решение - можно посмотреть в сторону фриланса
    Ответ написан
    Комментировать
  • Почему перестают работать usb-serial устройства на Raspberry Pi 4?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Фильтруйте питание. Там защит много не бывает, особенно в автоприменениях. По питанию катушка выдаст хорошие такие иголки, которые надо бы фильтровать. А по воздуху - кучу помех в широком спектре.
    Поставьте электролит + керамика на питание.
    Поставьте ферритовые колечки на провода питания.
    Укорачивайте сигнальные провода по возможности.
    Экранируйте платы, все экраны - на землю в одной точке.
    В конце концов, сделайте аккумуляторное питание не от машины, а от отдельного акб.
    Ответ написан
    Комментировать
  • Как автоматизировать регулярный клик на кнопку?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Самое простое - выполнить что-то подобное в консоли, или если это надо часто - сделать букмарклет с таким кодом.
    const setIntervalHandler = setInterval(
      ()=>{
        const elem = document.getElementById("myButton");
        elem.?click ? elem.click(): console.error("button not found");
      },
      2*60*1000
    );
    Ответ написан
    Комментировать
  • Как с помощью макроса найти слова и выделить их разными цветама в зависиомости от слова в гугл таблицах?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Храните слова и цвета вместе, и используйте вместе.
    let dictionary = {
      stop_words: [
       { word: "Not_Malicious", color_code: "#ea4300" },
       { word: "NOT_Virus", color_code: "#ea0035" },
       { word: "NOT_Fake_Message", color_code: "#004335" },
       { word: "NOT_Misleading", color_code: "#ea4005" },
       { word: "NOT_Sound", color_code: "#e00335" },
       { word: "NOT_JSalert", color_code: "#0a0305" },
      ],
    };
    
    // Тут, для производительности, можно предварительно сделать все TextStyle вместо color_code
    
    function _1() {
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      // range диапазон поиска
      let range = sheet.getRange("E:E").getValues();
    
      range.forEach((item, row) => {
        for (let column = 0; column < item.length; column++) {
          if (typeof item[column] === "string" && item[column] != "") {
            let richText = SpreadsheetApp.newRichTextValue().setText(item[column]);
            // item[column] текст ячейки
            dictionary.stop_words.forEach(({word, color_code}) => {
              let arr = searchIndex(
                word.toLocaleLowerCase(),
                item[column].toLocaleLowerCase()
              );
              let color = SpreadsheetApp.newTextStyle()
              .setForegroundColor(color_code)
              .build();
              arr.forEach((ind) => {
                richText.setTextStyle(ind.startIndex, ind.endIndex, color);
              });
              sheet
                .getRange(row + 1, column + 1)
                .setRichTextValue(richText.build());
            });
          }
        }
      });
    }
    // ... остальной код
    Ответ написан
    Комментировать
  • Построение диаграммы Ганта через массив с числами?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Преобразовать числа в даты и использовать уже готовое
    2) Сделать самому, с преферансом и поэтессами
    Ответ написан
    Комментировать
  • Возможно ли сделать в exel такой функционал?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Всё возможно, только сейчас это не вопрос, а задание.

    Для закраски подойдёт условное форматирование: номер недели + продолжительность <= номер столбца
    Для переноса номеров ИНДЕКС / ВПР / ГРП / ПОИСКОЗ
    Ответ написан
    1 комментарий