Задать вопрос
  • Простой пример одного и того же кода в ООП, функциональном и процедурном стиле?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    (Все это дико не академично, не корректно и воообще, но должно быть понятно):

    Процедурный подход: есть последовательность команд. Каждая из них может содержать последовательность команд.
    возьми_кофемашину();
    налей_воды_в_кофемашину();
    нажми_кнопку();
    подставь_кружку();
    вылей_кофе_в_кружку();
    наслаждайся();


    ФП - акцент на действии. Одни действия влекут за собой другие.
    наслаждайся(
        своим_кофе(
            которое_сделала_кофемашина(
                в_которую_налили_воды())))


    ООП - акцент на объектах. Любое действие совершает конкретный предмет
    есть кофемашина;
    есть кружка;
    есть ты;
    
    ты.имеешь(кружку)
    кофемашина.имеет(кружку)
    кофемашина.поехали();
    ты.возьми_свою_кружку();
    ты.наслаждайся();
    Ответ написан
    2 комментария
  • Как можно сократить код?

    longclaps
    @longclaps
    resolve((recoupment > 0 && probability <= 50 && setWinnerDrop(itemsbot, true))
        || setWinnerDrop(itemsbot, false) || false);
    Ответ написан
    1 комментарий
  • Как можно сократить код?

    @rustler2000
    погромист сикраш
    if (recoupment > 0 && probability <= 50) {
        var drop = setWinnerDrop(itemsbot, true);
        if (drop) {
            resolve(drop);
            return;
        }
    }
    
    var drop = setWinnerDrop(itemsbot, false) || false;
    resolve(drop);
    Ответ написан
    Комментировать
  • Как составить все возможные комбинации?

    longclaps
    @longclaps
    гугл
    Сергей Соколов сказал, что мопед надо помыть
    function* permutation(s) {
        if (s.length < 3) {
            yield s;
            if (s.length == 2) yield s[1] + s[0];
        } else {
            for (let i = 0; i < s.length; i++) {
                let h = s[i];
                for (let t of permutation(s.substr(0, i) +
                    s.substr(i + 1))) yield h + t;
            }
        }
    }
    
    for (let s of permutation("abcd")) {
        console.log(s)
    }
    Ответ написан
    8 комментариев
  • Что может вызывать такой паттерн нагрузки CPU?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Поставьте atop в режиме логирования - сможете пост-фактум посмотреть, какие процессы грузят процессор.
    Ответ написан
    Комментировать
  • Как оформиться фрилансеру на работу?

    @BorisKorobkov
    Web developer
    Псевдо-официально:
    НДФЛ 13%
    Пенсия 22%
    Медицина 5,1%
    Соцстрах 2,9%
    = 43%
    + прибыль самой компании
    Итого минимум половину денег будете отдавать просто так.

    ИП:
    регистрация 800 руб + 28 тыс руб/год + 1% (свыше 300 тыс. руб./год) + УСН 6%

    ООО:
    регистрация 4 тыс + уставной капитал 10 тыс. + УСН 6% + НДФЛ 9%
    Ответ написан
  • Curl стал чаще тормозить. Как определить причину?

    gobananas
    @gobananas
    finishhim.ru
    Смотрите в curl_getinfo там есть:

    CURLINFO_TOTAL_TIME - время выполнения операции в секундах;
    CURLINFO_NAMELOOKUP_TIME - время разрешения имени сервера в секундах;
    CURLINFO_CONNECT_TIME - время, затраченное на установку соединения, в секундах;
    CURLINFO_PRETRANSFER_TIME - время, прошедшее от начала операции до готовности к фактической передаче данных, в секундах;
    CURLINFO_STARTTRANSFER_TIME - время, прошедшее от начала операции до момента передачи первого байта данных, в секундах;
    CURLINFO_REDIRECT_TIME - время, затраченное на перенаправление, в секундах;

    Если всё это у вас быстро отрабатывает то проблема у вас, если какая-то из переменных велика то какая - посмотрите где идёт задержка времени. Если проблема у них, то тут особо ничего не сделать, если не в curl то можно думать уже...
    Ответ написан
    1 комментарий
  • Как разрешить Google Apps Script отправлять email для любого пользователя Spreadsheet?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Описания недостаточно, код не видно, хотя, можно уже предполагать, где скрывается ошибка. Разделите понятия:

    Судя по описанию, User-B прошел авторизацию, а остальные пользователи нет. Заставьте этих пользователей пройти авторизацию, и у них появится разрешение на запуск функций.

    Как заставить пользователей авторизоваться - это проблема разработчика, а не Google. Но, не имея в техническом плане серьезных противоречий, этот подход сложен для понимания практического. Примеры приложений, код которых может быть одинаков до запятой.
    • Отправить присьмо при изменении. Простой триггер onEdit(). Может отпрвлять только то, кто прошел авторизацию.
    • Отправить присьмо при изменении. Устанавливаемый триггер. Триггер установлен кем-то одним. Может отпрвлять только то, кто прошел авторизацию, т.е. один. Письма будут приходить согласно условию в коде.
    • Отправить присьмо при изменении. Устанавливаемый триггер. Триггер установлен каждым умником, кто залез в код. Может отпрвлять только тот, кто прошел авторизацию. Письма будут приходить согласно условию в коде умноженное на количество умников, потому что это будет один и тот же код, срабатываемый для каждого триггера в каждом аккаунте.

    Разрабатывая клиент-серверное приложение, вам необходимо заботиться о многопользовательском доступе. Необходимо разработать процесс и порядок доступа, и только после этого разбираться, как это реализовать. Например,
    • Каждый пользователь сам себе будет отправлять письма? Зачем и нах!?
    • Каждый пользователь будет отправлять письма на заданный адрес?
    • Письма будет отправлять только один аккаунт всем участникам подписки, группе, редакторам и т.д.?
    • Письма будет отправлять только один аккаунт, тому кто совершил изменения? Для аккаунтов googlemail.com это недоступно.

    Лично мне было бы неприятно, что кто-то требует от меня отпрвлять непонятно куда и зачем какие-то письма, выжирая и так скудную квоту.

    Пересмотрите свое приложение. Какие цели оно преследует? Чего вы уже добились? Так ли это работает? Приведите пример кода и суть приложения.
    Ответ написан
    1 комментарий
  • Какую кассу выбрать для интернет проекта с учетом 54-ФЗ?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    У Вас есть 4 варианта жизни в условиях 54ФЗ

    1. Купить кассовый аппарат, установить его где-то, самому реализовать интеграцию с ним, самому реализовать отправку чеков клиенту.

    2. Воспользоваться сервисом онлайн касс, например https://online.atol.ru/ - кассу все равно придется купить но уже у них, самому нужно будет просто слать им данные о проведенных покупках/возвратах через +- человеческое апи.

    3. Обратиться к любому из крупных шлюзов действующих в РФ - у них есть из коробки интеграция с одним из ОФД (у Я.К как раз с Атолом этим) - кассу купить опять же придется (пара кликов), никаких дополнительных интеграций - данные туда шлет сама платежка.

    4. Зарегистрировать юрлицо вне российского права, работать с зарубежными шлюзами, забыть про 54ФЗ навсегда.
    Ответ написан
    1 комментарий
  • Как сделать отсчет по 0,01 javascript?

    0xD34F
    @0xD34F Куратор тега JavaScript
    $({ number: +$('.number').text() }).animate({ number: 5 }, {
      duration: 5000, 
      easing: 'linear',
      step: updateNumber,
      complete: updateNumber,
    });
    
    function updateNumber() {
      $('.number').text((+this.number).toFixed(2));
    }


    Чтобы считать не переставал - класть время старта счётчика в localStorage, при загрузке страницы проверять - если есть, запускать счётчик со значения, соответствующего разности текущего времени и сохранённого.
    Ответ написан
    1 комментарий
  • Как задать паролем перемешивание 32 элементов?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    N элементов (до 32)....однозначно из строки (пароля) любой длины


    Думаю можно сделать это с использованием sha-256 (для 32 элементов в самый раз):
    let permutation = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
    
    sha256.array('суперпароль').forEach((n, i) => {
        let j = n % (permutation.length - i) + i;
        
        [permutation[i], permutation[j]] = [permutation[j], permutation[i]];
    });
    
    console.log(permutation); // [19, 30, 25, 16, 23, 8, 11, 27, 13, 6, 4, 26, 21, 28, 24, 14, 2, 5, 15, 18, 10, 0, 7, 22, 31, 9, 17, 29, 20, 3, 12, 1]

    codepen
    Ответ написан
    Комментировать
  • Как задать паролем перемешивание 32 элементов?

    @Mercury13
    Программист на «си с крестами» и не только
    Если не нужна криптостойкость, то…
    1. Преобразовать (однозначно) в очень длинное число.
    2. Получаем такие части этого числа.
    • Остаток от деления на 32
    • Неполное частное на 32, затем остаток на 31
    • Неполное частное на 32·31, затем остаток на 30
    • Неполное частное на 32·31·30, затем остаток на 29…
    На словах страшно, алгоритм простейший.
    3. Из 31 числа — первое от 0 до 31, второе от 0 до 30, последнее 0 или 1 — легко получить перестановку.

    Если криптостойкость всё же нужна — придётся пароль «посолить» до достаточной длины и зашифровать чем-то.
    Ответ написан
    1 комментарий
  • Как организовать международный прием платежей с минимумом налогов?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    у эквайрингов в РФ есть один недостаток: они не любят карты дальше РФ/СНГ
    за Альфу не скажу, может, любит, но, думаю, не любит

    второе - не знаю, какие планируются обрроты, но прямой мерчант дают далеко не нулевым, хз насколько верна цифра в $100к/mo для минимума (для Кипра до кризиса было и 10к), но, думаю, около того

    PayPal с нуля, если пролет с мерчантом, приемлем. Лучше не в России.

    Эстонские компании с 25% налогом и возможным НДС - для лохов. Если вы клюнули на e-residency, поздравляю.
    NL, CY получше, но НДС везде в Европе давит тяжелой лапой.

    "Всего мира" не существует. От слова "совсем" или "вообще"
    Есть США с кредитками в пупке, от рождения. И все. Чуток AU и CA.
    Остальные платят кредитками много хуже, европа - много населения, потому много транзакций, но до США конверсии далеко.
    Поэтому на "все виды платежей" можно забить. Их всего три: кредитки, Пейпал и крипто. Крипто для нелегала (казиношки там, зверушки, ..)

    Ирландия и Нидерлады да. Ведут. 50к в год если готовы выложить, можно что-то рекомендовать.

    Sripe хорош, но проблема США в их завязанности на US Citizen, это значит - наличие SSN.
    Да, можно зарегить компанию, необязательно Делавер (там скрытый реест,в отличие от многих, но это последнее преимущество). И США не оффшор, номиниала с SSN нанять за 500 в год не получится.

    В целом схема строится от оборотов, если продавтаь услуги аутсорса для небольшой конторы - это одно, 8-15% потерь + налоги, если обороты большие - это другое (3-5% финсервисам + налоги), очевидно, что универсального решения быть не может
    Ответ написан
  • Какие есть ресурсы для обогащения знаний по JavaScript?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Интересные задачки, всякие тесты, неожиданные нюансы языка и тд. Короче, всякого рода места на просторах интернета, где можно встретить живое общение, обсуждение и споры, реальные кейсы.

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

    Ahen
    @Ahen
    Универсальный дилетант
    какой нибудь готовый код

    Нет. Есть лишь приложение сообществ - https://vk.com/app5748831

    Реализация под себя:
    Для начала собираем список id пользователей, которые разрешили получение сообщений от сообщества.
    Например посредством https://vk.com/dev/callback_api или https://vk.com/dev/messages.getDialogs

    Далее разбиваем список id на массив массивов по 100 id, обходим массив в цикле и используем метод https://vk.com/dev/messages.send указывая по 100 user_ids.

    При этом помним, что мы можем запрашивать метод лишь 3 раза в секунду. Снять ограничение поможет https://vk.com/dev/execute - сможем отправлять 100*25*3 = 7500 сообщений в секунду (на деле медленнее).
    Ответ написан
    9 комментариев
  • Есть ли функция, которая сравнивает id и возвращает новый массив?

    @abberati
    frontend-разработчик
    Пока вы не спросили, не было.
    Теперь есть.
    Ответ написан
    Комментировать
  • Прием платежей с иностранных карт и Paypal для физ.лица?

    opium
    @opium
    Просто люблю качественно работать
    да никто конечно не будет на бомжа принимать кредитки вы что с ума сошли
    зарегать ооо стоит 10к и три дня
    Ответ написан
    4 комментария