• Как сделать анимацию для изображений?

    Ankhena
    @Ankhena Куратор тега HTML
    Нежно люблю верстку
    Очень интересно, почему текст подписи вы считаете неконтентным, а картинку не имеющую смысла наоборот, контентной?
    И с семантикой проблемы. Это ведь список, а не разрозненные div. А может ещё и ссылки на разделы портфолио.

    Итого: список, в каждом элементе либо <a> либо <span> (буду называть текстовым блоком). Картинка псевдоэлементом.
    Каждый элемент это грид в одну ячейку. (Раньше это делали абсолютами, теперь это не нужно) Внизу псевдо с картинкой, наверху текстовый блок
    В начальном положении текст прозрачный, при наведении меняется.
    Можно менять прозрачность всего блока или только фона.

    Ответ написан
    Комментировать
  • Как сделать случайный background-color ко всем div-ам? У меня только к первому div-у делает фон случайный. Как применить ко всем?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    id в рамках страницы должны быть уникальны.
    Значит, нужно обращаться по классу, использовать querySelectorAll
    Ответ написан
    Комментировать
  • Как получить актуальное состояние блока из коллбека, который его менял?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Думал получить что-то вроде живой коллекции, которая содержит все li-элементы, которым еще не назначен класс js-hide и если таких элементов нет, скрывать блок. Что-то вроде getElementsWithoutClassName().

    Не той дорогой идёте, товарищ.

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

    UPD

    Ответ написан
    3 комментария
  • Какой алгоритм работы с JWT token?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    При авторизации выдаются сразу оба токена, рабочий и refresh. Refresh-токен сохраняется в базе сервера вместе с идентификатором пользователя, рабочий токен хранить смысла нет.

    Срок жизни записан в самом токене, как одно из полей полезной нагрузки (payload). Прочитать это поле может и сервер и клиент. Сервер в любом случае должен контролировать срок жизни токена, клиент может это делать сам, а может просто реагировать на ответы сервера.

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

    Запрос на обновление сопровождается refresh-токеном.
    Если refresh-токен в базе помечен как уже использованный, то инактивируются (удаляются из базы) все refresh-токены данного пользователя и возвращается сообщение о необходимости повторной авторизации.
    Refresh-токен отмечается в базе как использованный .
    Если срок действия refresh-токена истёк или такого refresh-токена нет в базе сервера, то возвращается сообщение о необходимости повторной авторизации.
    Возвращается новая пара токенов.

    Где и как хранить токены на клиенте - вопрос предпочтений. Можно не хранить вообще, тогда при перезагрузке страницы пользователю придётся авторизоваться заново. Можно сохранять только refresh-токен, выполняя запрос на обновление при запуске приложения / открытии страницы.
    Ответ написан
    4 комментария
  • Удобные ежемесячные git commit отчеты?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    cd project1
    # даты и имя автора подставить самому
    git log --pretty=format:"%ad - %an: %s" --after="2016-01-31" --until="2017-03-10" --author="John Doe" > project1.txt

    Повторить 5 раз и отправить 5 файлов руководству.
    Ответ написан
    Комментировать
  • Как публиковать коммерческие проекты в GitHub?

    Не публиковать, подтверждать свой опыт и знания на собеседовании. Всё.
    Ответ написан
    Комментировать
  • Как создать такую таблицу?

    Awilum
    @Awilum
    Частный разработчик, ментор и преподаватель курсов
    2 комментария
  • Сложный вопрос про английскую версию сайта в ру-сегменте?

    opium
    @opium
    Просто люблю качественно работать
    А какая цель в ней если вы не занимаетесь ею?
    Перед решением надо понять цель, а потом уже плясать от этого
    Ответ написан
    2 комментария
  • Как узнать за какое время скомпилировалась программа на Golang?

    axifive
    @axifive
    Software Engineer
    Вам нужно засечь время исполнения.
    В Unix системах есть команда: timego ....
    В Windows PowerShell есть Measure-Command{start-process go ... }

    А дополнительную отладочную информацию можно получить с помощью флагов
    https://pkg.go.dev/cmd/compile#hdr-Command_Line
    Ответ написан
    Комментировать
  • Как это правильно записать в SCSS?

    Ankhena
    @Ankhena
    Нежно люблю верстку
    Можно оставить как есть.

    Можно переписать так:

    .parent__child {
      background: gray;
      @media (max-width: 777px) {
        background: orange;
        
        .parent--custom & {
        background: red;
      }
     }
    }


    можно так:

    .parent__child {
      background: gray;
      @media (max-width: 777px) {
        background: orange;
      }
    
      .parent--custom & {
        @media (max-width: 777px) {
          background: red;
        }
      }
    }


    А совсем хорошо вот так:
    .parent__child {
      --color: gray;
      background: var(--color);
      @media (max-width: 777px) {
        --color: orange;
      }
    
      .parent--custom & {
        @media (max-width: 777px) {
          --color: red;
        }
      }
    }
    Ответ написан
    2 комментария
  • Как можно отключить стили рекурсивного элемента?

    nazares
    @nazares
    Software Engineer
    .example_3 .example, .example_3 .example > * {
      all: initial;
    }
    Ответ написан
    Комментировать
  • Как избавиться от бесконечных условий в php?

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    <?php
    $doc_count = 255;
    
    echo "Стоимость " . $doc_count . " символов составит: " . getPrice($doc_count) . " рублей";
    
    function getPrice($count_symbols)
    {
        $price_one_part = 99;
        $amount = 500;
        return floor($count_symbols / $price_one_part) * $amount;
    }


    Стоимость 255 символов составит: 1000 рублей
    Ответ написан
    1 комментарий
  • Как избавиться от бесконечных условий в php?

    @alekcena
    Нелинейный наставник
    Сумма за 99 символов
    У нас есть 205 символов
    За каждые 99 символов прайс 500 рублей
    1) Делаем деление всего символов на 99
    2) Умножаем результат на 500 рублей

    ПС:
    Это даже не программирование.
    Ответ написан
    Комментировать
  • Как избавиться от бесконечных условий в php?

    aliencash
    @aliencash
    Партизан
    Но у вас же тут просто формула.
    $sum = (1+floor($number_of_characters / 100)) * 499;
    Ответ написан
    Комментировать
  • Как передать this в коллбек-функцию в данном случае?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    const media = this.media = {
        loaded: null,
        total: null
    };
    
    this.$http.post('/api/media/upload', formData, {
        uploadProgress(e) {
            media.loaded = e.loaded;
            media.total = e.total;
        },
    })
    Ответ написан
    Комментировать
  • Какую панель управления хостингом на VPS выбрать в 2021?

    Я перепробовал множество панелей, и имел разный опыт эксплуатации и впечатлений оставленных после использования.

    Cyberpanel - веб-дизайн панели очень плох, но с точки зрения принципов построения панели для сервера который хостит разные сайты - этой панели нет равных среди всех опробованных мною панелей описанных выше. И open_basedir, и разграничение каждого сайта под отдельным пользователем, и приятная структура хранения сайтов аля: /home/пользователь/public_html,log,backup
    И приятные бекапы, и возможность подкрутить всякие штуки по типу Lets Encrypt без проблем, либо ограничение доступа, либо WAF из коробки, либо файловый менеджер, и так далее.

    Но за несколько лет меня эта панель достала. Во-первых, она крайне забагована. Её неоднократно ломали, и ломали мои хобби проекты (статичные сайты). Во вторых - у них через версию баги с обновлениями, которые полностью ломают всю панель и возможность входа внутрь. Причем ломается напрочь без возможности починить, только чистая переустановка. Неоднократно сообщал об этом - никакой помощи нет. В третьих - это баги OpenLiteSpeed, либо баги конфигурации веб-сервера. Когда за 1 месяц собирается сессий на 19 гигов в папке lsphp - это вообще не ок, что аж сервер крашит и inodes все заняты. И это один из багов. Были баги с их кешированием которое включено по умолчанию, и приходилось принудительно в каждом .htaccess отключать для доменов. И баги с бекапами были. Т.е. по принципу созданию в абстрактном понимании - панель топ, классная, молодцы, очень хорошо сделано в плане архитектуры. Но вот баги дурацкие, просто выбешивают.
    Нравилось с ols что все работало относительно хорошо с любым проектом, любыми реврайтами, кешированиями, разными версиями php, и занимало существенно меньше ресурсов чем апач, либо апач и nginx. Но увы - порекомендовать именно эту панель не могу. Я не знаю что должно произойти что бы её допили до нормального состояния.

    VestaCP - долго пользовался этим огрызком. Просто дичайшее отвращение к их темплейтам и конфигам веб-серверов. Какой идиот это писал? И под какие нужды? Огромное количество раз ломали эту панель как в общем, так и лично мне. Но визуально и в плане юзабилити одна из самых беспроблемных и простых и удобных панелей на рынке. В 2021 она мертва. Последние какие-то подвижки и обновления и работа над панелью завершились в году так 2017-2018. Всё остальное делают когда есть свободное время.

    HestiaCP - кусок г. базирующийся на VestaCP, после того как последние забили на разработку.
    Автор этой панели не вытягивает количество проблем и багов в этой панеле и сообщество. Не компетентен, плохо тестирует. Но с точки зрения безопасности в плане админки - он хорошо поработал. Всё остальное - очень плохо. Может даже инсталятор не установить с первого раза панель. Не полноценно поддерживаются разные конфиги установки без апача например на nginx+php-fpm. Крайне убогие наследуемые шаблоны от весты со всеми косяками и проблемами.
    Регулярные баги и проблемы с LetsEncrypt. Жрёт очень много озу. Но визуально хорошо сделано в плане внешнего вида. Под капотом - бред и анархия, но есть куда хуже панельки.
    Этой панели так же как и cyberpanel не хватает крепкого сообщества и волонтеров по допилу панели до нужной кондиции. Увы - очень сырая. Но критических багов как в CyberPanel среди веб-компонентов не было выявлено. Регулярно нужно что-то допиливать в панели.

    FastPanel - лично для меня это какое-то недоразумение. Снова принципы и архитектура вроде хорошая, но все как-то сыро, и иннертно.

    DirectAdmin - скорее мертв, чем жив. Хоть и используется массово на хостерах, но с безопасностью у этой панели швах полный. Если речь идет о шаред хостинге, то взлом одного сайта почти с 100% вероятностью повлечет за собой взлом всех сайтов, так как никаких ограничений в рамках одного аккаунта в плане ACL (разного рода) у панели нет. Из коробки куча абсурда и дегенеративных решений аля блок mysql порта, либо блок других портов через csf. Либо лимиты на размеров файлов. Ранее года 2-3 назад панель была полным днищем. Но после изменений ценовой политики cPanel - нарастили базу, и приняли пулреквесты и предложения, что бы как-то перехватить поток пользователей которые начали мигрировать на другие панели. Я не могу сказать что DirectAdmin в моем личном опыте эксплуатации была хорошей панелью. Мне не понравился опыт взаимодействия, и озвученные выше проблемы особенно с php. В 2021 году интерфейс панели и фичи панели наконец-то удобно расположили, и улучшили для удобства пользователей. Но я бы на этой панеле не сидел. Ну не нравится мне такой подход к панелям в плане архитектуры. Я считаю его не безопасным, убогим.

    ispconfig - тяжеловесный монстр со скрытыми платежами аля: "купить нашу документацию, что бы нормально все настроить, иначе из коробки будут неприятные проблемы с производительностью сервера". Пользовался - не зашло вообще ниразу. Не плохая, особых багов не было замечено, но тяжеловесная панель.

    centminmod - это даже не панель, это скрипты, и автор eva2000 - очень хорошо поработал над ними, и конфигами nginx, myslq, php, и так далее. Это пример того, как должно быть в любой панели из коробки. Конфиги хорошо отточены, допилены, протестированы, и разраб испытывает страсть к серверам и своей панельке, но у него не хватает скилов создать веб-панельку, которой ой как не хватает этому проекту. Одна из лучших панелей в плане стабильности работы и конфигов серверов, из списка озвученного выше. Но не удобная в использовании. Но конфиги - прям конфетка. Но не для мультисайта вообще ниразу, хоть и опции есть. Эта панель для меня некий фундамент, который до меня настроили хорошо, и дали на эксплуатацию. Ручками придется поработать немного в зависимости от веб-приложения (если специфичное), но не так много как в весте. Обычно пару строк измененний в конфигах, не более. Но не работает нормально с множеством сайтов на одном сервере.

    CentOS Web Panel - я вообще не понял что это такое, и зачем оно нужно, и почему оно имеет какую-то популярность.

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

    Остальные не опубликованные панели так же использовал, но не продолжительно.
    Поэтому лень писать о них, и не помню недочеты.

    Одна из самых удобных для меня и простых панелей были: cPanel, Plesk, ISPManager но все платные, и дорогие.
    Сейчас сижу на самописных скриптах и своих nginx конфигах. Ибо достало каждую панель ручками допиливать, либо получать уведомления что сайт не работает, потому что баг в модуле очередной панели.

    И да, в моем "ответе" опыт с 2012 по 2021 год.
    И все панели выше я проверял в 2021 году так же, и у кого-то были существенные изменения, а у кого-то вообще их нет. Т.е. отзыв актуален, но субъективен. Возможно у кого-то был другой опыт, но мой таков, каков он есть.
    Ответ написан
    5 комментариев
  • Установка SSD в ноутбук с уже установленной Windows?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Какова вероятность нормальной его работы после данных манипуляций в ноутбуке A, если до
    всех манипуляций создать точку восстановления?
    В данной ситуации в случае проблем поможет только бэкап, точка восстановления никак не поможет.

    Точка восстановления это просто теневая копия - в случае перестановки диска в другой компьютер она будет удалена, в случае проблем с диском - испорчена.
    Ответ написан
    Комментировать
  • Установка SSD в ноутбук с уже установленной Windows?

    SagePtr
    @SagePtr
    Еда - это святое
    Перед тем, как ноут выключить и вынуть диск - отключить различные функции вроде быстрого запуска и гибернации. Иначе есть риск, что гибернация всё же будет использована, что может навредить целостности файловой системы, если между засыпанием и пробуждением диск извлекался и использовался на другой системе (я однажды так сломал системный раздел, пришлось из бэкапа восстанавливать). Точка восстановления не спасёт никак, она хранится на том же томе.
    Ответ написан
    1 комментарий
  • Как сделать чтоб бордер кнопки горел только несколько секунд?

    YavaDev
    @YavaDev
    Ответ написан
    Комментировать