• Сколько комбинаций из цифр 5678?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вы имеете ввиду сколько перестановок возможно без замены то есть если я использовал например 8 то все я не могу использовать 8 снова. Логика следующая у вас есть 4 позиции _,_,_,_ на первую вы можете сколько вариантов подставить вы имеете на выбор 5, 6, 7, 8 то есть 4. Вы имеете 4,_,_,_. Теперь выбираете из 3 чисел. 4,3,_,_ и по той же логике получаете 4*3*2*1.
    Ответ написан
    Комментировать
  • Для чего вызывают apply и call последовательно?

    Alexandroppolus
    @Alexandroppolus
    кодир
    супермозговывертный вызов можно сократить до
    console[level].apply(console, argsWithFormat)

    console[level] - некая функция из консоли, например, console.error. Но в IE9 у неё нет apply, и вызов через точку не сработает. Потому берется стандартный Function.prototype.apply и вызывается через call, так что console[level] станет для него как this (как то, что перед точкой), а остальное - аргументами.
    Ответ написан
    6 комментариев
  • Права для локальной разработки должны быть 777?

    @Everything_is_bad
    Если выставить 755 то начинаются вечно какието косяки, то скрипт не может создать папку, то откорректировать файл.
    для локальной разработки пофиг, но лучше всё таки разобраться как это они работают, чтобы понимать, а не делать тупое 777. Ну и кроме прав, разобраться с owner и group

    например на папку для загрузки собственных аватаров пользователей, какие у неё должны быть права на продакшине?
    начать думать, их надо запускать? а какой процесс их может удалять? а какой читать?
    Ответ написан
    Комментировать
  • Как в результат substring вывести только число?

    @psiklop
    let href = "https://site/ua-search/page-4?search=футболка";


    Твой вариант, но со вторым параметром в substring:
    console.log(href.substring(href.indexOf("page-")+5, href.indexOf("?")));


    Вариант с регуляркой:
    console.log(href.match(/page-(\d+)/)[1]);
    Ответ написан
    1 комментарий
  • Почему появляется такая ошибка на PHP?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    - $path = $_SERVER['DOCUMENT_ROOT'];
    - $path .= "./snippets_main/head_main.php";
    + $path = __DIR__ . "/snippets_main/head_main.php";
    Ответ написан
    Комментировать
  • Как масштабировать число с идеальной точностью?

    vaut
    @vaut
    Предлагаю решить уравнение
    11*x=13
    И почитать что такое рациональные числа.
    Ответ написан
    1 комментарий
  • Laravel 5.2 редирект на предыдущую страницу с сохранением get параметров?

    greabock
    @greabock
    Могу
    Например, в Laravel есть механизм intended. Можно посмотреть как он устроен, и сделать нечто подобное.
    Нас конечно же больше всего интересуют методы guest и intended класса Illuminate\Routing\Redirector.

    /**
         * Create a new redirect response, while putting the current URL in the session.
         *
         * @param  string  $path
         * @param  int     $status
         * @param  array   $headers
         * @param  bool    $secure
         * @return \Illuminate\Http\RedirectResponse
         */
        public function guest($path, $status = 302, $headers = [], $secure = null)
        {
            $this->session->put('url.intended', $this->generator->full());
    
            return $this->to($path, $status, $headers, $secure);
        }
    
       /**
         * Create a new redirect response to the previously intended location.
         *
         * @param  string  $default
         * @param  int     $status
         * @param  array   $headers
         * @param  bool    $secure
         * @return \Illuminate\Http\RedirectResponse
         */
        public function intended($default = '/', $status = 302, $headers = [], $secure = null)
        {
            $path = $this->session->pull('url.intended', $default);
    
            return $this->to($path, $status, $headers, $secure);
        }


    Как мы можем наблюдать, ни какой черной магии здесь не происходит. Просто при перенаправлении на страницу аутентификации в сессию добавляется url. А после того как пользователь успешно прошел аутентификацию, делается перенаправление обратно на сохраненный ранее в сессии url.

    Реализуйте схожий механизм со своими нюансами и будет вам счастье.

    Вообще (если ваша задача описана в вашем вопросе в полной мере) будет вполне достаточно сделать так:
    if(auth()->guest()) {
        session()->put('url.intended', url()->full());
    
        return redirect()->route('auth');
    }
    Ответ написан
    3 комментария
  • Как перенести большую базу на другой сервер без простоев?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Рабочий ли вариант если просто через rsync передать всю папку /var/lib/mysql?

    Просто перенос файлов рабочей БД окончится тем, что файлы есть, а базы нет, потому что неоткуда взяться метаданным в системной базе данных. Вернее, всё ещё забавнее - базы вроде бы и нет (USE приводит к ошибке "БД не существует"), но её нельзя создать, потому что она есть. И то же самое с таблицами (SELECT/DROP/прочее нельзя, потому что таблицы нет, CREATE нельзя, потому что она есть).

    Метод сработает, если переносить все БД сразу, включая служебные. Но требуется точное соответствие исходной и конечной конфигураций - начиная с версии и сборки MySQL и кончая именами каталогов и именами/паролями учётных записей в операционной системе. Плюс перегенерация и переподключение сертификатов.

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

    Решений без блокирования практически не существует. Нет, можно наколхозить реальное решение, которое обойдётся вообще без остановки, я даже представляю как именно (FEDERATED ENGINE + triggers), но подробно рассказывать не буду - для её реализации нужны достаточная квалификация и опыт, на одних советах шанс на удачу невелик, скорее всё поломается.

    Есть вполне себе документированные способы: Copying MySQL Databases to Another Machine. Особенно последний из описанных. Он предполагает минимальное время простоя при использовании штатных средств.
    Ответ написан
    Комментировать
  • Непонятное поведение своей интерпретации функции Promise.race, почему так происходит?

    Alexandroppolus
    @Alexandroppolus
    кодир
    строка
    promise.then(onFullfiled).catch(onRejected);
    на самом деле работает как
    promise.then(onFullfiled, err => {throw err;}).then(v => v, onRejected);

    Если имеем дело с зарезолвленным/зареджекченным промисом, то здесь первый then ставит микротаск в очередь сразу, а второй - только по выполнении микротаска от первого.

    соответственно, для примера
    const promises = [
      Promise.reject('rejected1'),
      Promise.reject('rejected2'),
      Promise.resolve('resolved'),
    ];


    микротаски составили такую очередь:
    1) err => {throw err;}
    2) err => {throw err;}
    3) onFullfiled
    4) onRejected,
    5) onRejected
    6) v => v,


    Где пункты 1-3 добавились на цикле, а 4-6 по мере выполнения первых трёх.

    вот так и вышло, что onFullfiled вылез вперед.
    Ответ написан
    1 комментарий
  • Как организовать доступ к непубличным токенам?

    1. НИКОГДА не храните секреты (токены, логи-пассы и т.д.) в коде, который сохраняете в Git. Даже для пет-проектов. Даже если вы потом удалите этот токен из файла, он навсегда сохранится в истории гита, потом вы про это забудете, поделитесь кодом с кем-то, и он найдёт этот токен в истории. Вопрос не в том, найдет ли пользователь этот токен или нет, вопрос только в том, когда он найдёт этот токен. Очень-очень-очень многие просто забывают о том, что когда-то коммитили токен в репозиторий, забывают вычистить историю, и этот токен утекает...

    2. Код и секреты - это отдельные сущности, и жить они должны в разных местах. Если хотите поделиться кодом, обязательно опишите в README процесс получения токена, чтобы пользователи смогли хоть как-то этим кодом пользоваться. Это хороший тон в open-source.

    3. Если вы будете пользоваться системами CI/CD от Github или Gitlab, то там у репозиториев есть специальные разделы, в которых можно безопасно хранить секреты. Но вы должны быть внимательными, если сделаете кого-нибудь контрибьютером в вашем проекте. Не забудьте проверить все разрешения, которые выдаёте этим людям, потому что они при деплое проекта через эти системы CI/CD смогут вычитать ваши секреты. Если вы один хозяин репозитория, то хранить секреты там вполне безопасно.

    4. Если же вам всё-таки по какой-то причине очень надо, чтобы пользователи всё же как-то работали с вашим токеном, то единственное, что мне приходит в голову - это написать приложение типа API Gateway, которое будет имитировать ту апиху, от которой ваш токен. И это ваше приложение будет иметь базу данных пользователей которые смогут в вашем приложении регистрироваться и получать уже ваши токены, вами сгенерированные, для доступа к вашей апихе, а ваша апиха будет внутри себя вытаскивать данные из оригинальной API по оригинальному токену и отдавать эти данные им.
    Ответ написан
    Комментировать
  • Как организовать доступ к непубличным токенам?

    @historydev
    Острая аллергия на анимешников
    Это тебе не хогвартс, а просто гит.

    Либо даёшь инструкции для получения токена, либо генеришь отдельный ключ для гита, чтобы ты понимал кто из вне стучится и контролировал процессы, по типу разрешений, кол-ва запросов допустимых и доступа в целом.
    Ответ написан
    Комментировать
  • В чём смысл писать функциональные тесты на Java, если есть postman и другие инструменты?

    AnotherAnkor, Есть много историй с кафка или redis - где нам надо ходить и вариантов нет - и тут постман пролетает.
    Есть также всякие ui и скриншотные тесты, которые тоже надо писать и на постмане не сделать .
    А есть достаточно более сложные тесты где нам надо не только отправлять запросы, но слушать websoket, sse и не факт что только под одним пользователем.
    Плюс есть всякие штуки на создание и прочее, которые тоже простыми не бывают. И нам приходится использовать разные паттерны разработки.
    Да и много чего еще чего есть. Что если и можно сделать через постман - то это дорого и больно сложно.

    Но это не значит что постман плохой инструмент - это лиш значит, что он хорошо себя показывает в конкретных кейсах, на конкретных проектах.

    Если вы тестите простые веб-сервисы с простой логикой, то да отличный инструмент для автоматизации. И возможно что-то другое избыточно
    Ответ написан
    1 комментарий
  • В чём смысл писать функциональные тесты на Java, если есть postman и другие инструменты?

    xez
    @xez
    TL Junior Roo
    Смысл появляется, если тесты становятся чуть сложнее, чем проверка результатов http запроса.
    Ответ написан
    8 комментариев
  • Как работает then в промисах?

    miraage
    @miraage
    Старый прогер
    Ответ написан
    Комментировать
  • Как работает then в промисах?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    RTFM. Там всё описано.
    Ответ написан
    Комментировать
  • Что технически(какие it решения, технологический стек) нужны для создания ии ,который сможет на основе жалоб ставить диагноз?

    @HLudens
    Как уже верно указал Алексей стек простейший, вас устроит любая библиотека для создание нейросети под любой известный вам язык программирования. Например tensorflow хоть под питон хоть под жаваскрипт.
    Схема сети тоже простейшая вход-несколько полносвязных скрытых слоев-выход
    формат входа- вектор со всеми возможными видами жалоб в формате есть/нет/неизвестно
    Формат выхода- вектор где каждое число вероятность для болезни.
    Собственно все.
    Сложность у вас возникнет по 3 пунктам,
    -создать перечень (и интерфейс!) для жалоб
    -создать перечень диагнозов
    -и, самое главное, создать обучающую выборку! Т.е. проработать десятки а лучше сотни тысяч медкарточек, перегнать их в формат вектора жалоб и вектора диагноза и после этого обучить сетку.

    А так задачка простейшая :)
    Для программиста.
    А вот для того кто будет эти сотни тысяч карточек читать и вводить это ад.
    Ответ написан
    Комментировать
  • Как переместить скопировать удаленный репозиторий в другой удаленный репозиторий?

    vhood
    @vhood
    Не забывайте отмечать решения
    1. Клонируешь проект из исходного репозитория

    git clone <ссылка на старый>

    2. Переходишь в склонированный репозиторий и добавляешь новый удаленный репозиторий

    git remote add copy <ссылка на новый>

    3, Пушишь коммиты в новый репозиторий (выше в команде я назвал его copy)

    git push --all copy
    Ответ написан
    Комментировать
  • Как удалить аккаунт из списка Contributors?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Если в истории проекта есть коммиты этого человека, то мы увидим его в списке Contributors — тех авторов коммитов, кто внес свой вклад в проект.
    Имена авторов коммитов берутся из подписей коммитов и не всегда их можно сопоставить с конкретными аккаунтами гитхаба, так как люди не удосуживаются настроить подпись, а на гитхабе вообще скрывают своё мыло. В итоге не попадают в список авторов и их работа остаётся анонимной.

    Пытаться удалять человека из авторов (забывать его вклад) нет смысла. Достаточно забрать права на изменения, или вообще удалить из списка Collabolators.
    Ответ написан
    2 комментария
  • Таблица на HTML как сделать кликабельными строки?

    @archelon
    1. не использовать таблицу. сверстать на флексбокс, каждую строку обернуть в ссылку.
    <a href="#" class="link">
      <span class="name">Ремонт1</span>
      <span class="hours">3-5 часов</span>
      <span class="price">1190 ₽</span>
    </a>


    2 . javascript: повесить на tr событие onclick
    <tr class="link3" data-url="https://yandex.ru" onclick="goToUrl(this)">
        <td>Text</td>
    </tr>
    <script>
          function goToUrl(i) {
            const url = i.dataset.url
            window.location.href = url
          }
    </script>
    Ответ написан
    Комментировать
  • Как исправить ошибку "is not a valid parameter annotation" слэш-команды в когах?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    В слеш командах типы не просто показывают что за объект, но и выполняют конвертацию.
    Документацией в слеш командах разрешены следующие типы
    str
    int
    float
    bool
    disnake.abc.GuildChannel*
    disnake.User or disnake.Member**
    disnake.Role**
    disnake.Attachment
    disnake.abc.Snowflake***

    Судя по тому, что вы пытаетесь принимать commands.Context, которого в слеш командах нет, вы с предыдущих вопросов так и не ознакомились с различиями между обычными командами и слешами.

    Как исправить ошибку
    Либо переписать функцию, потому что во взаимодействии нет методов и атрибутов, которые вы пытаетесь использовать, либо оставить команду обычной.
    Ответ написан
    Комментировать