Задать вопрос
  • Как получить последнюю директорию в строке?

    0xD34F
    @0xD34F Куратор тега Регулярные выражения
    1 комментарий
  • Необходимо ли выносить docker окружение в отдельный репозиторий?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Правильно - хранить код в одном репозитории.
    На проде не требуется даже иметь гит или что там у вас в качестве системы контроля версий.
    Нужно настраивать CI/CD так, чтобы в контейнер на прод выкатывались только нужные файлы и каталоги, ничего лишнего.
    Очень удобно, когда в девелоперском окружении код работает без докера, но сопутствующие вещи вроде БД и прочих сервисов удобно держать в контейнерах и на девелоперской машине. Так проще развёртывать среду разработки и быстрее вводить сотрудников в процесс. Технически нет особых проблем, чтобы настроить удалённую отладку прямо внутри контейнера. так можно приблизить девелоперское окружение к продовой конфигурации.

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

    Храните всё, что нужно для CI/CD в том же репозитории где код. Там же у вас лежат тесты (не нужные в продакте), вспомогательные скрипты, артефакты тулинга и прочее.
    Поищите, в гитхабе есть много так называемых "КукиКаттеров". Это инструмент, для шаблонизации проектов на разных стеках. Как правило в созданной по такому шаблону заготовке проекта уже есть всё не обходимое для CI/CD.
    Ответ написан
    6 комментариев
  • Каким будет аналог команды "ls -C"?

    @azarij
    В меру опытный никто
    Денис Загаевский прав, но если очень уж хочется увидеть похожий вывод в powershell...

    ls | Format-Wide -Column 5 -Property name
    Ответ написан
    Комментировать
  • Что можно сделать с раскрученым доменом?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Что можно сделать с раскрученым доменом?

    -- Запустить (во всех смыслах этого слова)
    Ответ написан
    Комментировать
  • Какую книгу подарить ведущему программисту в компании?

    miraage
    @miraage
    Старый прогер
    Был опыт лида. Книги вообще не нужно. На такой позиции человек сам найдёт нужную информацию.

    Команда знала про мою любовь к виски - дарили на ДР бутылочку односолодового, очень приятно.
    Когда уходил с компании - подарили огромную надувную утку-лежак! :)

    Я сам читерил на подарки коллегам. Был знаком с их половинками, писал им втихую, спрашивал идеи.

    TL;DR: узнайте интересы человека и постарайтесь подобрать что-то подходящее.
    Ответ написан
    Комментировать
  • С помощью чего можно поменять адрес сайта на QR коде?

    milssky
    @milssky
    Координатор племени фиолетовых обезьянок
    1. Перепачатать и переклеить qr код
    2. Сделать редирект со старого адреса на новый
    Ответ написан
    3 комментария
  • Алгоритм поиска кратчайшего пути через все вершины?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Это NP-полная задача. При достаточном количестве мусорных баков эффективно и быстро решить её просто нельзя.
    Важно понимать какое вам нужно решение: достаточно хорошее или оптимальное. Возможно, что для поиска оптимального решения вам просто не хватит ресурсов.
    Оптимальный маршрут ищется перебором иногда с разными оптимизациями, которые, впрочем, не сильно помогут в произвольном случае.
    Субоптимальные ищутся, к примеру, генетическими алгоритмами.

    Эта задача называется задачей коммивояжера:
    Задача коммивояжёра относится к числу трансвычислительных: уже при относительно небольшом числе городов (66 и более) она не может быть решена методом перебора вариантов никакими теоретически мыслимыми компьютерами за время, меньшее нескольких миллиардов лет.
    Ответ написан
    8 комментариев
  • Что нужно для SEO в 2020 году?

    ReactorHeart
    @ReactorHeart
    SEO аналитик
    Странно, что вы задаете вопрос здесь, а не тому, кто вам сказал, что "половина уже не нужно".

    Хорошо, раз вопрос задан, внесу свои 5 копеек.
    Вы выучили базовые принципы продвижения и без них даже не имеет смысла заниматься продвижением сайта. Кто говорит обратное, застрял в 2009 году, когда для достижения заветного ТОПа достаточно было увеличивать бюджеты на ссылочное. Сейчас тоже такие ребята есть и работают они на этот раз с "подливами" и накруткой ПФ. Всегда найдутся те, кто хочет быстрее срубить бабла на Заказчике..

    "База" перечисленных вами работ/навыков была и остается, плюс к ней добавляется работа с Яндекс справочником и Google Бизнес, например, которые не относятся напрямую к SEO, но влияют на успешное продвижение в регионах.

    Рекомендую продвинуть хотя бы один проект самостоятельно, убедиться самому, какие работы нужны, а какие нет, а рекомендации "сбоку" будут всегда. Но о работающих фишках вам никто не расскажет, ибо это хлеб специалиста, который зарабатывается временем, опытом и деньгами.
    Ответ написан
    7 комментариев
  • Какой стек выбрать, если я захочу запилить твиттер?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Начали они с Ruby on Rails и MySQL. Сейчас там чрезвычайно сложная распределённая инфраструктура с использованием множества технологий. Солидная часть кода написана на Scala.

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

    wisgest
    @wisgest
    Не ИТ-специалист
    сообщение->мой домен->редирект r01->гугл(спам)

    Последовательно отмечать такие сообщения как «не спам» — возможно, со временем поможет.

    Если не помогает или не хватает терпения, то в настройках Gmail создать фильтр «не помещать в спам» письма, содержащие в Кому полный адрес в своём домене или его часть (например, только домен). Если вы, как и я, предпочитаете упрощённый интерфейс Gmail, то создание такого фильтра в нём недоступно и для этого надо временно переключится на «стандартный». Письма будут помещаться во Входящие, но в своём большинстве будут содержать пометку, что не помещены в спам из-за соответствующего фильтра. Эту пометку убрать нельзя и явным образом дать понять Google, что это не спам тоже нельзя.

    Можно также попробовать воспользоваться двумя ящиками в Gmail. Пересылать из своего домена на первый. Для него настроить ничего не помещать в спам, пересылать на второй и удалять, и больше в него не заходить. По моему опыту доля попавших в спам писем во втором (основном) ящике при таком двойном перенаправлении будет меньше, а их уже можно попробовать помечать как не спам вручную для обучения Google.
    Ответ написан
    1 комментарий
  • Как зарегистрировать свой qr код?

    trapwalker
    @trapwalker
    Программист, энтузиаст

    Сразу хочу предупредить что я знаю что такое qr код и для чего он нужен. И знаю что есть куча генераторов qr кодов.

    Теперь у меня возникла проблема, а как сделать что-бы при сканировании моего qr кода открывался сайт? Именно моего qr кода.

    Судя по вопросу вы слишком самоуверены в своём "знании".
    Вы путаете. Не сайт привязывается к QR-коду, а QR-код создаётся из ссылки на сайт, из номера телефона или из email, или параметров подключения к wifi.

    Вот сейчас подумал, что, возможно, вы хотели по одному и тому же QR-коду ходить на со временем изменяющуюся страницу? Можно нарисовать QR-код для ссылки, полученной с помощью любого сервиса сокращения URLов, а потом подменять там целевой адрес для редиректа. Это даст вам заодно еще и статистику переходов по ссылке.
    Ответ написан
    4 комментария
  • Нахождение строк в массиве объектов Javascript?

    twobomb
    @twobomb
    if(users.some(u=>u.user == user && u.password == password)){
    //Как бы авторизация
    }
    Ответ написан
    Комментировать
  • The property ... is not readable because it is typed "string". Но почему?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    If a typed property does not have a default value, no implicit null default value is implied (even if the property is nullable). Instead, the property is considered to be uninitialized. Reads from uninitialized properties will generate a TypeError
    https://wiki.php.net/rfc/typed_properties_v2#unini...
    Ответ написан
    Комментировать
  • Каким методом можно заменить приведённый ниже код?

    @McBernar
    Вы же можете сами проверить

    const arr = [true, false, true, false, false];
    const f = (item) => item === true;
    const fn = (f, list) => list.filter(f);
    const res = fn(f, arr);
    console.log(res);
    Ответ написан
    Комментировать
  • Почему нет опции смотреть в 2K, 4K и 8K на YouTube?

    PolarBearGG
    @PolarBearGG
    I know that I know nothing
    4к в ютубе VP9 а на маке только H.264, скачаю хром мб поможет а так на сафари 100% проблема в кодировке
    Ответ написан
    2 комментария
  • Почему некорректно отображается страница сайта при просмотре в консоли разработчика?

    @L1nks
    У вас на странице есть псевдоэлемент, у которого ширина 1200px, поправьте это и все будет ок
    5e81a3d69e85b338360132.png
    Ответ написан
    1 комментарий
  • Зачем использовать готовые решения?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - готовый код - он разный. В частности данное утверждение подразумевает "готовое обкатанное, проверенное на многих использованиях, все основные косяки и грабли уже найдены и пофиксены".

    Во вторых - ясное дело что для всего на свете нет готовых решений, где-то реально нужно писать свое, а местами свой велосипед удобнее и проще. Это не исключает первый пункт, то есть вероятно грабли и баги вылезут у вас в самый неподходящий момент.

    В третьих - готовое распространенное решение проще поддерживать, завтра вы уйдете / перестанете поддерживать свое "творение", и другой разработчик вынужден будет разбираться в вашем произведении, матюкаясь что в одном месте "все прибито гвоздями", в другом "собрано из г**на и палок", в третьем "эти 30 строк пишутся одной тренарной операцией, кто это вообще писал???"... И вам потом икать, оно вам надо?

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

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

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Для таких случаев придумали docblock (а начиная с php 8 - union типы):

    # PHP 7+

    declare(strict_types=1);
    
    /**
     * @param int|string|float $a
     * @param int|string|float $b
     * @return string
     */
    function summ($a, $b): string {
        return bcadd((string)$a, (string)$b);
    }


    # PHP 8+

    declare(strict_types=1);
    
    function summ(int|float|string $a, int|float|string $b): string {
        return bcadd((string)$a, (string)$b);
    }


    P.S. Помимо этого можно кастовать результат к инту, если он в пределах допустимого int32/int64 (зависит от ОС и сборки пыха) значения
    return $result > \PHP_INT_MAX ? $result : (int)$result;
    Ответ написан
    Комментировать
  • Как в Laravel построить отношения одной дочерней модели с другой через родительскую?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Очень легко.

    Client:
    
    hasMany(Metric::class, 'project_id', 'project_id')
    
    Metric:
    
    hasMany(Client::class, 'project_id', 'project_id')
    Ответ написан
    1 комментарий
  • Что быстрее mysql, mysqli или pdo?

    fonclub
    @fonclub
    php developer
    Php 7 мне явно не нужен, не вижу смысла

    А вот насчёт перехода на php 7 стоит подумать. Прирост в производительности впечатляющий, посмотрите тесты. Так что смысл в этом есть.
    Ответ написан
    Комментировать