• Как сделать Index с типом Hash?

    vhood
    @vhood
    Не забывайте отмечать решения
    public function safeUp()
    {
        return $this->execute("CREATE INDEX name ON table USING HASH (column)");
    }
    Ответ написан
    Комментировать
  • Сервис для входа на сайт через смс код?

    @Kostik_1993
    Web Developer
    Firebase. Есть сервис аутентификации по СМС коду. 10 тысяч входов без тарификации в месяц. Прикрутить опытному разработчику не сложно. Одно но, почему-то рандомно не прилетают смс на некоторые номера
    Ответ написан
    2 комментария
  • Сервис для входа на сайт через смс код?

    Столько смс и стоит.
    Немного может различаться от количества сообщений и операторов, но порядок примерно такой.

    Именно по этой причине все кто используют смс для уведомлений - очень активно борются со всякими смс-бомберами, тк они создают достаточно большие убытки, добавляют капчу, снижают частоту, делают уведомления платными (в случае Банков например).

    А также доставляют коды через альтернативные каналы, если есть такая возможность: totp, уведомления, сообщения в мессенджере.
    Ответ написан
    2 комментария
  • Почему PHPStorm советует static для fn функций?

    miraage
    @miraage
    Старый прогер
    Не кодил на PHP 100 лет, точного ответа не подскажу. Однако идея, что статическая лямбда будет видеть меньше переменных -> проще для GC = уже кажется, как небольшая победа.

    https://www.designcise.com/web/tutorial/what-are-s...
    https://www.php.net/manual/en/functions.anonymous....
    Ответ написан
    1 комментарий
  • Почему PHPStorm советует static для fn функций?

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

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Это точно не `chore`, так как относится к продакшен коду.
    `chore` - это всё что угодно вокруг кода, если не заведено более узкого типа.
    Линтеры (если не используете `style`), настройка CI (если не используете `ci`), всевозможный дополнительный тулинг вроде `husky` или `lint-staged`, незначимое обновление зависимостей и так далее.

    Ваш список типов коммитов по ссылке - это лишь один из популярных вариантов договорённости между разработчиками (я к тому, что есть и другие).
    Более того, он может быть спокойно расширен другими типами, если вам это нужно, камнями никто не закидает.

    Если хотите строго следовать, то ваша правка - либо `fix`, либо `feat`.
    Я же для себя и для команды ввёл дополнительный тип `temp` (от `temporal`) как раз для такого толка изменений.
    Когда "приходит время", можно просто поиском по этому типу быстро его найти и сделать `revert`.

    Ещё расширил типом `nvm` (от `nevermind`) для исправлений в духе "забыли пробел в readme" и прочего незначительного.
    Хоть формально это может быть выражено через `docs`, `refactor`, `style` или `fix`, от наличия таких коммитов в changelog'e никому ни горячо, ни холодно, поэтому они просто в него не включаются.

    Расширяйте конфигурацию до необходимого вам и вашим изменениям, и всё будет хорошо.
    * Однако, опыт и здравый смысл подсказывает, что чем типов меньше, тем меньше вероятность ошибки и тем больше шанс, что ими будут пользоваться. Без фанатизма, короче :)
    Ответ написан
    1 комментарий
  • Как выдать права пользователю на команду в Linux?

    fzfx
    @fzfx
    18,5 дм
    "Убрать" sudo можно через alias в .bashrc.
    Убрать требование пароля можно директивой NOPASSWD: в /etc/sudoers.
    Ответ написан
    3 комментария
  • Как отключить ввод passphrase?

    @Akela_wolf
    Extreme Programmer
    ssh-agent вам поможет. Вводите ключ один раз (в начале сессии) и все, дальше ключ будет использоваться без пароля.
    Ответ написан
    6 комментариев
  • PhpStorm + git 'Contents are identical' почему?

    reffy
    @reffy Автор вопроса
    Я молодец.
    Сижу на Linux. Проблема была в том, что git пытался сохранить права доступа к файлам. Решил проблему изменив в файле .git/config:
    filemode = false
    На всякий ещё поставил:
    git config --global core.filemode false
    Ответ написан
    Комментировать
  • Авторизация и аутентификация пользователя?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Делайте по инструкции и все получится:
    https://symfony.com/doc/current/security.html
    Ответ написан
    Комментировать
  • В чём отличие хука useMemo от useCallback в React?

    @JS_Noob
    Пишу плохой код профессионально
    Оба хука нужны для того, чтобы при передаче возвращаемых ими данных в качестве пропсов в компонент-потомок, этот компонент-потомок не совершал лишние перерендеры.
    То есть хук useCallback при одинаковых зависимостях создаст ссылку на функцию один раз. При передаче в компонент-потомок, этот компонент-потомок проверит что ссылка не поменялась и не будет делать лишний ререндер.
    Хук useMemo нужен для того же, но если useCallback возвращает функцию, то useMemo возвращает какие-то данные. И как писали ранее, useMemo не гарантирует, что ссылка на данные не изменится даже при одинаковых зависимостях.
    Ответ написан
    Комментировать
  • В чём отличие хука useMemo от useCallback в React?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Отличий два
    1) useCallback(func, deps) - ни что иное как useMemo(() => func, deps)
    То есть useCallback возвращает функцию, а useMemo выполняет функцию и возвращает результат (в обоих случаях - при условии что депсы поменялись).
    2) про useMemo в документации есть предостережение, что Реакт не гарантирует сохранность результата и может вычислить ещё раз, даже при неизменных депсах. Про useCallback такого не сказано.
    Ответ написан
    Комментировать
  • Почему не работает transition для background-image?

    dimovich85
    @dimovich85 Куратор тега CSS
    https://u-academy.net/
    Не работает и работает не будет! Надо понимать, что такое переход из состояния в состояние, а что такое дискретность. Дело в том, что есть состояния, которые плавно перетекают, а есть только такое или такое. Например, ребенок растет плавно, вот ребенку один год, вот прошло два месяца и уже год и 2 месяца, как ни странно, а вот ему уже 43, а есть (сейчас не будем про хирургию) дискретное состояние ребенка или человека, это девочка или мальчик, человек либо родился такого пола, либо другого, нет переходного состояния, как в случае с возрастом. Зачем это понимать и знать? Потому что transition отработает только для свойств, которые переходные, но не дискретные. Например, есть ширина 0 пкс, добавим 1 пкс и ширина уже 1пкс, добавим еще 20 - 20пкс, такое свойство можно анимировать. Есть прозрачность 0, а есть 0.1, а есть 0.2, 0.5, 1 - тоже можно. Но, есть display: block, а есть display: none, это дискретные состояния, либо есть, либо нет, анимации не будет, зато можно блок показать/скрыть с помощью анимации на его ширину, высоту, прозрачность... Цвет, как ни странно это тоже величина, которая имеет переходные состояния, например в препроцессорах можно написать #ccc + #eee и получить новый цвет, так как цвета задаются, по сути, просто числом, и увеличивая/уменьшая число получаем анимацию. А какой переход между двумя картинками? Никакого, только такая картинка или такая, поэтому, чтобы сделать плавную анимацию надо пробовать, разве что, прозрачность блока с фоновым изображением.
    Ответ написан
    8 комментариев
  • Почему [2] + 2 это 22, а не 4?

    lssssssssssl
    @lssssssssssl
    Массивы не имеют ни Symbol.toPrimitive, ни функционирующего valueOf, они реализуют только преобразование toString, таким образом, здесь [] становится пустой строкой, [1] становится "1", а [1,2] становится "1,2"

    https://learn.javascript.ru/array
    Ответ написан
    Комментировать
  • Какой будет скрипт на чистом JS, а не на jquery?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Фреймворки в веб-разработке?

    @alekcena
    Нелинейный наставник
    Фреймворк это готовая стандартизированная среда разработки, которая решает конкретные задачи.

    Почему их много? Это странный вопрос, тк как фреймворки созданы для автоматизации, ускорения разработки, стандартизации.

    В какой-то момент развития интернета компания "О-О" имеющая около 100 разработчиков и делающая однотипные действия решила что нужно это всё упорядочить да и задокументировать, зачем каждый раз писать велосипед.
    Люди приходят и уходят, продукт растёт, поддержка становится всё сложнее и сложнее.

    "0-0" Решила, а сделаем ка из наработок структурированные готовые решения ( У каждой компании есть множество наработок и готовых решений раскиданных по проектом ). Сделала, Добавила возможность к более гибким изменениям. Всё.

    Получили готовый продукт. Который решает задачи, быстро.

    Зачем тогда его делать публичным?
    Как говорилось разработчики уходят и приходят. И если нужно каждого обучать как только он приходит в компанию, уф, затратыы... Компании это не любят.

    Выкидывают свою эдакую в свет и просят чтобы все кто хочет устроится смотрели шо да как в этой эдакой работает.

    А дальше называется естественный отбор.
    "0-0" была не 1 такая умная, кто создал свой фреймворк да и выкатил в свет.

    Люди потрогали. Посмотрели. И путём эволюции отобрали то что удовлетворяет требованиям.
    • Легко в обучении
    • Быстро в написании
    • Модернизируемо


    Послесловие:

    Фреймворк это логичная ступенька эволюции разработчика который хочет повысить свою производительность.
    Блокнот->Текстовый редактор->IDE
    HTML(Сначала верстаем всё ручками) ->emmet(О какая штука оказывается)->Препроцессоры.
    ....
    Ответ написан
    Комментировать
  • Сервис звонков, с уже записанным аудио?

    Ответ написан
    Комментировать
  • Хождение AI по точкам из массива?

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

    @zaur45
    Не уверен именно за mysql, но я бы написал так. Мне кажется не очень хорошей идеей использовать зарезервированные слова count и month в качестве имени полей, но написал как попросили (-:

    SELECT
        user_id,
        COUNT(1) as count,
        MONTH(FROM_UNIXTIME(created_at)) as month
    FROM
        my_table
    GROUP BY
        user_id,
        MONTH(FROM_UNIXTIME(created_at))
    Ответ написан
    1 комментарий