Задать вопрос
  • Почему перестают работать 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 комментарий
  • Почему дисплей ST7789 не корректно работает?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Проверьте все соединения. Провода по возможности короче
    2) Проверьте код. Для начала просто повторите то что есть
    3) Если есть официальные примеры, проверьте на них
    4) Проверьте версию библиотеки.
    5) Попробуйте другую версию библиотеки.
    6) Попробуйте другую библиотеку.
    7) Есть конвертер 5>>3.3?
    Wide Supply Voltage Range
      I/O Voltage (VDDI to DGND): 1.65V ~ 3.3V (VDDI≦VDD)
      Analog Voltage (VDD to AGND): 2.4V ~ 3.3V

    8) Возможно есть несколько ревизий экрана, смотрите даташиты
    Ответ написан
  • Почему не работает тригер гугл таблиц?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Тут в самом вопросе ответ:
    через бота >> не работает
    через apps scripts >> не работает
    вручную >> работает

    Если надо запустить функцию извне, используйте doGet/doPost
    Ответ написан
    Комментировать
  • Почему не работает Esp32 из-за драйвера мотора?

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

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Ставите в A1 дату понедельника
    2) в B1 =A1+3 или дату четверга
    3) в C1 =A1+7
    4) Распространить или скопировать C1 вправо
    Ответ написан
    Комментировать
  • Как победить XPath?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    =индекс(ваша_формула;1;1)
    или
    =chooserows(ваша_формула;1)
    или сделать так:
    ( ваш_xpath )[1]
    Ответ написан
    1 комментарий
  • Как разбить одномерный массив на двумерный из строки?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    const inString = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
    let data = JSON.parse(inString);
    let outData = [];
    let outDataElem = [];
    for (let i in data){
      let el = data[i];
      if(!el){ // Если 0
        if(outDataElem.length){ // Если outDataElem уже что-то содержит
          outData.push([...outDataElem]);
        };
        outDataElem = [];
        continue;
      };
      outDataElem.push(el);
    };
    if(outDataElem.length){
      outData.push([...outDataElem]);
    };
    console.log(outData);
    Ответ написан
    Комментировать
  • Какой Скрип для записи последних действий в документе можно использовать?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    /**
     * Возникает при изменении ячейки
    * @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
     * [ ProgrammerForever (c) 2020 ]
     * @return Не возвращает значений
     */
    function onEdit(event) {
      var as = event.source.getActiveSheet();//Текущий лист
      var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
      var row = event.range.getRow();      //Номер строки
      var col = event.range.getColumn();  //Номер столбца
      var newValue = event.value;            //Новое значение
      var oldValue = event.oldValue;        //Старое значение
      var userEmail = event.user.getEmail();//Пользователь(работает только при вручную назначенном триггере)
      
      let archiveSheetName = "sheet";
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let archiveSheet = ss.getSheetByName(archiveSheetName) || ss.insertSheet(archiveSheetName);
      archiveSheet.appendRow([new Date(), userEmail, as.getName(), address, oldValue, newValue]);
    };
    Ответ написан
  • Как понять, отправился ли ответ?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Будет 2 набора ответов, 2 строки в таблице; можно и больше.
    Отличаться будут временем отправки. (и, возможно, ответами)
    Ответ написан
    Комментировать
  • Как изменять значение других ячеек при смене значения в выпадающем списке?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Найти значение
    2) Выбрать столбец

    Например так:
    =choosecols(e2:h4; поискпоз(a1; трансп(e1:h1); 0) )
    Ответ написан
  • Как реализовать произношение английских слов в таблице?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    1) Найти сервис который умеет выдавать нужные данные по API
    2) Написать код для работы с этим сервисом
    3) Сделать интерфейс. Конкретно транскрипция это текс, можно писать прямо в ячейки или даже использовать как юзерфункцию. А проигрывание - тут я бы использовал модальное окно, там наверняка можно воспроизвести файл.
    Ответ написан
  • Как сделать так, чтобы окрывался функционал в копии только после активации?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Если коротко: никак. Если юзер может редактировать таблицу, то может и смотреть скрипты и прочее.

    Я делал свой бэкенд (на тех же гугл скриптах) с доступом по токену. Без него таблица хоть и не пустышка, но мало применима.
    Ответ написан
  • Как сделать тег определенной роли в Discord в зависимости от выбора варианта в форме?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    У вас же есть код который обрабатывает событие отправки формы? Вот там и реализуйте всю бизнес-логику, никаких подводных камней нет, пару if всего-то
    Ответ написан
  • Как правильно зарядить параллельно 2 AGM аккумулятора?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    1) Вполне вариант, но один их акб может брать ток больший чем номинал (2А макс ток по паспорту), а тут может возникнуть превышение в 2 раза
    2) Самый простой и безопасный вариант. Но медленнее от 2 раз
    3) Неплохой вариант, если время дороже денег. Надо купить зарядку на 2S и балансир.
    Ответ написан
    Комментировать
  • Как сделать скрипт для сверки данных?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    =arrayformula(if(a2:a="";;ЕСЛИОШИБКА(ВПР(a2:a;лист1!a:b;2;0))))

    a2:a = мак2
    лист1!a:b = мак1+владелец
    Ответ написан
    Комментировать
  • Как построить логические схемы?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Так а в чём сложность вообще? Это руками на раз-два строится, и процесс медитативный.
    1) Обозначить все возможные входы
    2) Сделать инверсию если у определенных входов есть инверсия в формуле
    3) Расставить действия согласно приоритету
    4) По порядку рисовать схему действий, каждый вывод подписывать (если формула не оптимальная, может пригодиться что-то промежуточное)
    5) ????
    6) PROFIT

    Или составить таблицу истинности, по ней СКНФ/СДНФ, и по ним схему.
    Ответ написан
    Комментировать