Задать вопрос
  • Может ли выключатель не полностью проводить электрический ток?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Это самый плохой вариант - нет перегрузки, нет замыкания, а есть дуга. Нагрев есть, защиты - нет. Соответственно всё подсказали уже - отключить, проверить, зачистить/заменить/протянуть.
    Ответ написан
    Комментировать
  • Как снять сигнал с выхода на тахометр от ЭБУ автомобиля, при помощи Arduino?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Лучше всего взять готовую схему для подключения, защиты, согласования. Смотрите схемы ЭБУ, их прилично. Январь, Бош, SECU и т.д.
    Ответ написан
    Комментировать
  • Как вставить дату ячейку с помощью ПСТР()?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    ТЕКСТ() для форматирования
    ARRAYFORMULA() для обработки диапазонов
    ЕСЛИ() для того чтобы считало только по данным, а не пустоту
    =ArrayFormula(ЕСЛИ(A:A="";;"№"&A:A&" от "&ТЕКСТ(B:B;"dd.MM.yyyy")))
    Ответ написан
    Комментировать
  • Как настроить "автоматически расширяемый" диапазон в условном форматировании?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    При вставке строк, удалении строк, копировании ячеек, добавлении строк через "Вставить строки ниже" в уже готовом правиле автоматически меняется диапазон - автоматом расширяется и сжимается исходя из логики изменений структуры. Причем если было A1:A10, например, то при добавлении строки в 5 позиции будет A1:A11 в итоге.
    Я бы сказал, что это не баг, а фича. Отследите после чего появляются дефрагментированные диапазоны и не делайте так.
    На крайний случай - сделайте скрипт который будет обновлять условное форматирование.
    Ответ написан
    Комментировать
  • Как собрать данные с помощью Importxml?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Посмотрите что вообще сервер отдает. Возможно сайт грузится динамически. Вот мой старый код, должен помочь
    /**
    * Открывает URL и возвращает код страницы
    * Telegram - @ProgrammerForever
    *
    * @param {string} URL URL который нужно открыть
    * @param {boolean} isCut Указывакт, нужно ли обрезать страницу до 50000 символов по длине, по умолчанию false
    * @param {boolean} noScript Указывакт, нужно ли удалять скрипты из кода
    * @return Исходный код страницы
    * @customfunction
    */
    function getHTML(URL,isCut,noScript) {
      if ((URL === undefined)||(URL == "")) { return "#ОШИБКА Пустой URL";};
      if (isCut === undefined) {var isCut=true;};
      if (noScript === undefined) {var noScript=true;};
      if (URL.map){     //Если задан диапазон
        return URL.map(getHTML);
      }else{
        try {
          var payload = {
            'rand':(new Date()).getTime()
          };
          var headers={
            'Connection': 'keep-alive',
            'Cache-Control': 'max-age=0',
            'Upgrade-Insecure-Requests': 1,
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
          };
          var options = {
            'method' : 'get',
            'headers' : headers,
            'payload': payload
          };
          
          var response = UrlFetchApp.fetch(URL,options);
          var charset=response.getAllHeaders["charset"];
          //var responseText=response.getContentText(charset?charset:"windows-1251");
          var responseText=response.getContentText(charset?charset:"UTF-8");
          if (noScript){ 
            responseText=responseText.replace(/<script[^>]*>(?:(?!<\/script>)[^])*<\/script>/gmi,"");
            responseText=responseText.replace(/<!--.*?-->/gmi,"");
            responseText=responseText.replace(/<link.*?\/>/gmi,"");
            responseText=responseText.replace(/<meta.*?\/>/gmi,"");
            responseText=responseText.replace(/[\n\r\t]/gmi,"");
            
          };
          if (isCut&&(responseText.length>50000)){return responseText.substring(0,50000);}else{return responseText;};
        } catch (err) {
          //return JSON.stringify(err);
          return "#ОШИБКА "+err.message;
        };
      };
    };
    Ответ написан
  • Почему Левый стик на геймпаде тянет Правый стик?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Скорее всего непропай или кольцевые трещины. Попробуйте пропаять выводы потенциометров стика.
    Как вариант еще- проверить питание, добавить конденсаторы в питание, переключить на другой порт.
    Проверить на другом компьютере или на сайте проверки джойстиков.
    Ответ написан
    Комментировать
  • Как реализовать debounce для поля ввода, чтобы ограничить количество вызовов API в JavaScript?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Отключать и ставить таймер на выполнение каждый вызов
    const input = document.getElementById("search");
    let searchdDebounceTimerHandler;
    
    input.addEventListener("input", (e) => {
        clearTimeout(searchdDebounceTimerHandler); // Если ввод быстрый, удаляем выполнение функции каждый раз
        searchdDebounceTimerHandler = setTimeout(() => {
            fetchSuggestions(e.target.value);
        }, 1000); // Сработает через секунду от последнего нажатия
    });
    Ответ написан
    Комментировать
  • Как починить данную поломку своими руками?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Покупайте экран и меняйте.
    Экран стоит 1000р на али, клей b7000 рублей 300
    Проще и надежней - отнести в сервис
    Ответ написан
    Комментировать
  • Как узнать частоту работы радичастотного пульта ДУ?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    По 4*длинны антенны можно попробовать посчитать.
    f = c / lambda = (3*10^8) / (4*l_ant_m) = (7500 / l_ant_mm) MHz
    Ответ написан
    Комментировать
  • Как программно написать триггер, который будет запускать макрос, при условии редактирования определенной ячейки на определенном листе?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Только я раз 10 этот код скидывал здесь.
    /**
     * Возникает при изменении ячейки
    * @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
     * [ ProgrammerForever (c) 2020 ]
     * @return Не возвращает значений
     */
    function onEdit(event) {
      var sheet = 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();//Пользователь(работает только при вручную назначенном триггере)
      
      if((col===1)&&(row===1)&&(sheet.getName==="Sheet1")){
        // Что-то делаем
      };
    };
    Ответ написан
    Комментировать
  • Какой набор отверток взять для электроники?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Если крутить много и несильно - Xiaomi электроотвертка. Полгода пользуюсь - часто выручает при ремонте мелкой техники.
    Для техники покрупнее купил рукоятку dexter в Леруа и сменные "биты". Качество неплохое, цена тоже.
    Ответ написан
    Комментировать
  • Какие ресурсы использовать для изучения embedded-разработки?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Навскидку:
    • видео: narod stream на youtube
    • чтение: чужие хорошие проекты
    • чтение: даташиты, эрраты и прочая документация
    • чтение: статьи в профильных журналах
    • практика: сделать свой пет проект
    • практика: помочь в опенсорсе
    • практика: взять диплом на тему

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

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Нужно преобразовать в нормальный вид Excel-времени/продолжительности. А потом уже можно фильтровать. Или фильтровать той же формулой, на месте. В формулу можно добавить аналогично недели, сутки, месяцы, декады и прочее-прочее, по аналогии
    =arrayformula(let(
      author;         "@ProgrammerForever";
      header;         "Продолжительность";
      ВремяБуквами;   $A$2:$A;
      
      dd;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+(?:дней|день|дня)");0);
      hh;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+час");0);
      mm;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+мин");0);
      ss;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+сек");0);
      
      time;           dd + hh/24 + mm/(24*60) + ss/(24*60*60);
      
      vstack( header; ЕСЛИ(ВремяБуквами="";;time))
    ))
    Ответ написан
    Комментировать
  • Можно ли задать счетчик, где условием является ссылка на ячейку?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Получать формулы, парсить и надеяться что там нет INDIRECT()/пользовательских функций/именованных диапазонов и т.п.
    В чём вообще исходная задача? Я такое делал когда в таблице на 100к формул появился цикл, пришлось писать скрипт который строит граф связей по ячейкам.
    Ответ написан
  • Как избежать дублей сообщений при отправке сообщений через Телеграм бота?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    Обычно проблема что onEdit не каждый раз срабатывает и события пропускаются, а тут наоборот.
    По факту каждое редактирование генерирует onEdit событие. Если надо отправлять реже - определитесь по какому параметру фильтровать эти события - по данным, по времени или еще как-то.
    1) Сделать очередь на отправку, отправлять пачкой по достижении какого-то количества
    2) Или запускать раз в минуту отправку
    3) Или блокировать документ на время отправки, если возникает гонка
    Или любая другая логика, сейчас непонятна проблема.
    Ответ написан
    Комментировать
  • Как сделать нужные строки по фильтрам с отображением на новом листе?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Храните данные и правьте в 1/2. Смотрите фильтр в 3. Так можно обойтись только формулой FILTER.
    Если править и в 1/2 и в 3 - то делаете скрипт с функцией onEdit(event) которая будет таскать записи с 3 на 1/2.
    Ответ написан
    Комментировать
  • Как определить в какую сторону повернуты нормали в треугольнке, Внутрь или снаружу?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Скалярное произведение вектора нормали и вектора из противостоящей вершины до точки откуда идёт вектор нормали.
    A-I-B
    B-J-C
    C-K-A
    
    a*CI
    b*AJ
    c*BK

    Положительно = наружу
    Ответ написан
    Комментировать
  • Почему выдает ошибку Service Spreadsheets failed while accessing document with id sheet_id?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Apps Script
    Учитель, автоэлектрик, программист, музыкант
    1) Вынесете лист с которым работаете в отдельную переменную вне цикла, нет необходимости получать её каждый раз.
    2) Зачем нужен массив abc? item никак не используется.
    3) Сделайте задержку или SpreadsheetApp.Flush(). Скорее всего не успевает скрипт.
    4) Объединённые ячейки - зло и грабли.
    Ответ написан
    Комментировать
  • Как изменить формулу?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    =ЕСЛИ(ЕОШИБКА(НАЙТИ("сто";A1));"";"сто")&
      ЕСЛИ(ЕОШИБКА(НАЙТИ("один";A1));"";"один")&
      ЕСЛИ(ЕОШИБКА(НАЙТИ("кря";A1));"";"кря")&
      ЕСЛИ(ЕОШИБКА(НАЙТИ("му";A1));"";"му")

    и т.п.
    Ответ написан
    Комментировать
  • Как в итоговую таблицу импортировать данные только из определенной таблицы из предложенного списка таблиц?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    соответствующей = ВПР()
    выгружаться = IMPORTRANGE()
    Заведите справочник, ищите по нему id таблицы. Это первый аргумент в IMPORTRANGE(). Второй - это имя_листа + диапазон
    =IMPORTRANGE(ВПР(город;{ВсеГорода\ВсеID};2;0);"Данные!A1")

    город = ссылка на ячейку выбора города
    ВсеГорода - столбец с данными по названиям городов
    ВсеID- столбец с данными по id таблиц
    Данные!A1 - что нужно импортировать
    Ответ написан
    Комментировать