Задать вопрос
  • Как вычислить ценовой рейтинг товара?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Это называется интерполяция. Вы знаете, что f(a) = 10, f(b)=5. Вам надо найти f(c), при чем f должна попадать под здравый смысл (монтонная, непрерывная функция).

    например, можно взять линейную инерполяцию, тогда f(x) = 10-(x-a)/(b-a)*5.
    Ответ написан
    1 комментарий
  • Как работает данный код?

    @antares4045
    ну вообще, писавший этот код, вероятно не очень здоров
    для начала предлагаю разобраться с деструктуризацией

    если вы напишите
    a,b = 2,3
    то в переменной a окажется значение 2
    а в переменной b -- значение 3

    это же можно использовать в циклах:
    words = [(0,'What'),(1,'the'),(2,'heck?')]
    for key,word in words:
        print('key:', key)
        print('word:', word)
        print()

    вывод:
    key: 0
    word: What

    key: 1
    word: the

    key: 2
    word: heck?


    если же при разборе кортежа, какой-то элемент вам не нужет, то можно просто использовать нижнее подчёркивание

    words = [(0,'What'),(1,'the'),(2,'heck?')]
    
    for _,word in words:
        print(word)


    Но автор вашего примера решил сделать нечто странное:
    {} -- создание пустого dict
    [()] -- присвоение в него по ключу "пустой кортеж" значения

    учитывая, что исходный dict никуда не сохраняется, это можно считать отчисткой, только вот зачем?
    a = {}
    a[()] = 5
    print(a)


    {(): 5}
    Ответ написан
    Комментировать
  • Как убрать в айфонах треугольник в input?

    GrinMorg
    @GrinMorg
    Если ответ помог, отметь решением
    Попробуйте
    .class {
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
    }
    Ответ написан
    2 комментария
  • Можно ли паять резистор к цельному проводу?

    Stalker_RED
    @Stalker_RED
    Можешь вообще не паять, а собрать все на макетной плате.

    Можешь в воздухе (на весу) скрутками скрутить, а потом их пропаять.

    Можешь применить монтаж накруткой.

    Еще ты можешь развести дорожки на компе, и заказать производство печатной платы на какой-то местной фабрике, или у китайцев (дешевле, но дольше ждать доставку).

    Ты можешь нарисовать дорожки маркером на куске фольгированного стеклотекстолита, потом подержать это в хлорном железе, отмыть, и просверлить отверстия. Справишься за пару часов.

    Можно не маркером рисовать, а распечатать лазерным принтером на бумаге, затем приложить ее к фольгированному слою и прогладить утюгом. Выйдет красивее, набив руку можно почти фабричный вид получать.

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

    @deliro
    Как понять микросервисы?

    Прочитать соответствующую книгу (а лучше ещё парочку про DDD или хотя бы посмотреть этот доклад)

    Затем ответить на несколько вопросов:
    1. Почему вы решили, что микросервисы что-то вам дадут?
    2. Есть ли у вас настоящие причины для микросервисной архитектуры? (А именно: зоопарк технологий с невозможностью написать 99% на одном языке; более тысячи разработчиков; сложность выкатки монолита в виде часов прогонов CI/CD — тестов, билда, деплоя, стопоров выкатки в виде кучи проблем из-за разработчиков; вы такие же большие как гугл, убер, амазон и т.п.). Или вам просто нравится модное слово "микросервисы"?

    Не получится создать хорошую микросервисную архитектуру без умения создать хороший модульный монолит. В этом случае вы получите не только все проблемы плохого монолита: высокая связанность, каскадные падения, долгий CI/CD; но и все проблемы микросервисов: их надо оркестрировать (у вас же есть команда, которая будет поддерживать инфраструктуру?); каждому микросервису нужно своё CI/CD (и хорошее); сеть может (и будет) лагать и обрываться; длительность запросов увеличится на порядок(ки) (особенно если выбрать какой-нибудь JSON-RPC over HTTP); нужно предусмотреть failover strategy (например, идемпотентные ретраи. Вы же уже знаете про correlation id, саги и что делать, если прилетел network error на запрос в другой сервис "списать 10 баксов"?) и circuit breakers; трейсы и логи, которые не пришлось бы искать по сотням .log файлов от каждого сервиса; бизнес-логика расползётся по разным микросервисам и нарушит SRP (пофиг, что нарушит, важнее то, что это починить будет сильно сложнее). Список можно продолжать долго.
    Ответ написан
    11 комментариев
  • Как составить регулярное выражение, чтобы получить форматированную строку в JavaScript?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const printf = (str, ...params) =>
      str.replace(/\$(\d+)/g, (m, g1) => params[~-g1] ?? m);
    Ответ написан
    1 комментарий
  • Как написать регулярное выражение которое будет разбивать по 3 символа цифры?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    export const format_number = (str, delimiter = '\u202f') => {
      // \u202f — неразрывный узкий пробел
      return str.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + delimiter);
    };
    Ответ написан
    Комментировать
  • Какой должен быть Git у начинающего разработчика?

    @mkone112
    Начинающий питонист.
    Тут как с селезенкой. Можно жить и без нее, но лучше с ней, а еще лучше чтобы она была здорова. Вот и гитхаб - лучше иметь, и лучше иметь в нем качественные проекты. Хорошие репы позволяют получать гораздо больше откликов, чаще пропускать этап тестового, порой проще проходить собесы (рассказ о реализации своего проекта - это игра на поле кандидата). А вот если в нем всякий хлам - лучше без него.
    Ответ написан
    Комментировать
  • Как сделать функцию RANDBETWEEN срабатываемой по дате?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Формула, для реализации этого процесса потребует итерационных вычислений и очень сложную формулу.

    Попробуйте использовать триггер для функции generateValue:

    function generateValue() {
      var spreadsheet = SpreadsheetApp.getActive();
      var from = 1;
      var to = spreadsheet.getRange('Sheet1!C5').getValue();
      var rand = randBetween_(from, to);
      spreadsheet.getRange('Sheet1!D5').setValue(rand);
    }
    
    
    function randBetween_(from, to){
      return Math.floor(Math.random()*(to - from + 1) + from);
    }


    Оригинальное решение содержит подобную задачу, только первое значение from для randBetween_ равно 1, а второе to берется из Таблицы. Триггер настроен таким образом, что данные в ячейке D5 обновляются периодически.
    Ответ написан
    Комментировать
  • Как сделать, чтобы в ячейке первая буква была Заглавной?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Нужно добавить следующий код в проект скриптов Таблицы

    /**
     *
     * @param {GoogleAppsScript.Events.SheetsOnEdit} e
     */
    function onEdit(e) {
      const allowRanges = [
        { sheetName: 'Заглавная буква', cells: ['B2', 'B3', 'B4'] },
        { sheetName: 'Стартовая страница', cells: ['B2', 'C2', 'D2'] },
      ]; // Список
      const sheetNames = allowRanges.map(r => r.sheetName);
    
      if (e && e.range) {
        const sheet = e.range.getSheet();
        if (
          sheetNames.indexOf(sheet.getName()) > -1 &&
          allowRanges.find(r => r.sheetName === sheet.getName()).cells.indexOf(e.range.getA1Notation()) > -1
        ) {
          const value = '' + e.range.getValue();
          e.range.setValue(value.slice(0, 1).toLocaleUpperCase() + value.slice(1).toLocaleLowerCase());
        }
      }
    }


    Чтобы программа реагировала правильно, нужно настраивать строку

    const allowRanges = [
    { sheetName: 'Заглавная буква', cells: ['B2', 'B3', 'B4'] },
    { sheetName: 'Стартовая страница', cells: ['B2', 'C2', 'D2'] },
    ]; // Список

    на все ячейки, где вы собираетесь отлавливать эти изменения

    60f514d1c79fe510480422.gif

    Пример в Таблице https://docs.google.com/spreadsheets/d/19bQjuZpRaE...

    Не работает для группы ячеек
    Ответ написан
  • Как вызвать метод без вызова конструктора?

    @infinityfreenom
    Ответ написан
    Комментировать
  • Что делает эта команда: gcc -I my_dts -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp -o system.dts system-top.dts?

    @res2001
    Developer, ex-admin
    my_dts - подкаталог в текущем каталоге, там gcc будет искать дополнительные файлы, которые используются в директиве #include, компилируемого файла, т.к. my_dts это параметр ключа -I. Если такого каталога нет - gcc никак об этом не сообщит, но возможно будут какие-то ошибки при сборке.
    Опция -E заставляет прервать компиляцию после обработки препроцессором.
    Т.е. в данном случае просто используют препроцессор Си для файлов dts. DTS - device treee source. В DTS файлах описывают железо на котором загружается ОС. Они используются, например, в u-boot, в ядре линукс и т.п.
    Выходной файл задается опцией -o.
    Ответ написан
    Комментировать
  • Почему массив не изменяется через цикл for..of?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Не меняется, потому, что в JS примитивные типы (число, строка) передаются «по значению». Внутри цикла оказывается копия значения, никак не связанная с оригиналом. Поменять это значение в цикле — оно не изменяется в источнике.

    Другое дело объекты – они передаются «по ссылке», и их содержание можно менять:
    let a = [{v: 1}, {v: 2}, {v: 3}];
    for (let obj of a) {
      obj.v += 1;
    }
    a // [{"v":2},{"v":3},{"v":4}]

    Подробнее про Копирование объектов и ссылки
    Ответ написан
    Комментировать
  • Как читать документацию по node.js?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    на официальномй сайте, проматываю чуть ниже и вижу

    fs.writeFile(file, data[, options], callback)#
    History:
    • file <string> | <Buffer> | <URL> | <integer> filename or file descriptor
    • data
      <string> | <Buffer> | <TypedArray> | <DataView> | <Object>

    • options <Object> | <string>
      • encoding <string> | <null> Default: 'utf8'
      • mode <integer> Default: 0o666
      • flag <string> See support of file system flags. Default: 'w'.
      • signal <AbortSignal> allows aborting an in-progress writeFile

    • callback <Function>
      • err <Error> | <AggregateError>



    When file is a filename, asynchronously writes data to the file, replacing the file if it already exists. data can be a string or a buffer.

    When file is a file descriptor, the behavior is similar to calling fs.write() directly (which is recommended). See the notes below on using a file descriptor.

    The encoding option is ignored if data is a buffer.

    If data is a plain object, it must have an own (not inherited) toString function property.
    ...


    откуда следует что:
    первый параметр - это имя файла который нужно создать,
    второй параметр - это данные которые нужно записать,
    третий (необязательный) - это объект с опциями
    а четвертый (или третий если предыдущий параметр не был указан) - это коллбэк

    ЗЫ: уважаемый ТС, я понимаю что вопрос скорее всего был задан из-за вашей невнимательности, но тем не менее ответ вы получили, отметьте его решением)))

    Вот вам способ быстро найти информацию на странице:
    - открыв нужную страницу с большим объемом текста, перемотайте страницу в начала (до оглавления) и затем нажмите комбинацию кнопок CTRL+F (поиск по тексту страницы) и в появившемся окошке вбивайте искомый текст (в данном случае fs.write). После этого нужные пункты оглавления подсветятся желтым и вы легко найдете нужный.
    Ответ написан
    12 комментариев
  • В чем отличие Tc, Ta в datasheets?

    @VT100
    Embedded hardware & software.
    Вероятно, под Tc понимается температура кристалла. А под Ta - окружающей среды (с учётом рекомендованных условий монтажа - на стандартном стеклотекстолите с толщиной меди 35 мкм и её площадью 1 кв. дюйм).
    Конкретику-бы.
    Ответ написан
    2 комментария
  • Можно ли в гугл форме создать блок вопросов для записи второго ответа одной отправкой формы?

    oshliaer
    @oshliaer
    Google Products Expert
    Я бы сгенерировал ссылку на Форму для каждого ученика индивидуально, т.е. т.о. чтобы постоянные данные как ФИО и др были бы уже заполнены. Но тут стоит вопрос, существует ли этот список данных для предзаполнения.
    Ответ написан
    Комментировать
  • Вирус генерирует htaccess и заражает сайт на wordpress. Как исправить?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    генерирует файлы htaccess во всех папках

    Удалить их можно через SSH, командой ниже, только путь на свой поправьте и убедитесь, что нужный(-е) htaccess(-ы) не снесёте:
    find /home/.../papka_saita -type f -name ".htaccess" -delete

    Вот расшифровка обфусцированного кода, изучите, возможно, поможет разобраться: https://pastebin.com/C4dk2WAX

    Но по-хорошему, совет выше верный - удаляйте краденое, перезаливайте сайт, обновляйте имеющееся, перепроверяйте оставшееся.
    Ответ написан
    Комментировать
  • Как посчитать сколько встречается каждое слово в таблице (или ячейке)?

    Fzero0
    @Fzero0
    Вечный студент
    Можно через создание своей формулы например
    function COUNTUNIQWORDS(cell) {
     var result = []
     var words = String(cell).split(" ");
     var wordsCount = words.reduce(function (acc, w) {
      if(acc[w]) {
        acc[w] += 1
      } else {
        acc[w] = 1;
      }
      return acc;
    }, {});
    for (var w in wordsCount) result.push('Cлово "'+ w +'" встречается '+ wordsCount[w] +  ' раз');
    return result
    }

    6108ef31e255c656419246.png
    Ответ написан
    1 комментарий
  • Можно ли синхронизировать на комп расшаренную для меня папку на Гугл Диске?

    oshliaer
    @oshliaer
    Google Products Expert
    rclone вам в руки. Возможна синхронизация в одну сторону.

    Это будет надежное решение. Только нужно будет немного погрузиться в процесс при первой настройке.
    Ответ написан
    1 комментарий
  • Как разнести цифры числа по ячейкам при дополнительном условии?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Я большой фанат Григорий Боев, но мне показалось, что не все так будет просто. Да, алгоритм менять не стоит, но вот суть некоторых формул можно упростить. Например, разнос цифр по парам

    =REGEXEXTRACT("" & B8;"(\d\d)(\d\d)(\d\d)(\d\d)")

    60f50b9857f5b905414802.png

    или сравнение с "22"

    =IF(--C8>22;REGEXEXTRACT(C8;"(\d)(\d)"); C8)

    60f50bf3b08c5236370326.png

    Это более уместный вариант. Нужно следить за типами данных. Обычно там строки, которые часто Таблица "хочет" автоматически сделать цифрами.

    Итоговый подсчет

    =INDEX(SORTN(TRANSPOSE({
      IF({B19:L19\B28:L28}="";"";--{B19:L19\B28:L28});
      TRIM(QUERY(
        IF("" & TRANSPOSE({B19:L19\B28:L28})="" & {B19:L19\B28:L28};IF({B19:L19\B28:L28}="";"";--{B19:L19\B28:L28}););
        ;
        9^9))
    });9^9;2;1;1);;2)


    60f50d09a09ec782340420.png

    Пример в Таблице https://docs.google.com/spreadsheets/d/19bQjuZpRaE...
    Ответ написан
    9 комментариев