Задать вопрос
  • Как сверстать вот такие два 4-х угольника?

    Ankhena
    @Ankhena Куратор тега Вёрстка
    Нежно люблю верстку
    Обычный градиент под углом на фоне.
    Одна строчка кода.
    background: linear-gradient(-45deg, red 50%, black 50%);

    У меня переход цвета по середине. Сдвиньте куда нужно и если нужно.
    Можно поставить на фон только одному блоку, второй оставить однотонным (а еще лучше прозрачным).
    Можно задать градиент псевдоэлементу одного из блоков и спозиционировать куда нужно.
    Ответ написан
    Комментировать
  • Есть ли смысл использовать параметризованный запрос, если в запросе не используются данные, предоставленные пользователем?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос с подвохом.
    Потому что "данные, предоставленные пользователем" может означать что угодно. Поэтому формулировать надо так:

    Надо использовать параметризованный запрос, если в запросе не используются переменные?


    И тогда ответ будет простой и очевидный - нет, не надо.
    Это очень простое правило: используются в запросе переменные? Используем подготовленный запрос и передаем через плейсхолдер. Не используются? Можно использовать query()

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Стоит ли давать и какие есть варианты защитить код?

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

    solotony
    @solotony
    покоряю пик Балмера
    return ($n1===$n2) + ($n2===$n3) + ($n1===$n3);
    Ответ написан
    Комментировать
  • Стоит ли идти во frontend или ниша насыщенна?

    DevMan
    @DevMan
    ниша насыщенна. как и многие другие.
    проблема только в том, что желающих охулиард, а грамотных (или с задатками) совсем не хватает.
    кем из этих двух категорий вы станете, зависит только от вас.

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

    но скоро прибежит зумингер и объяснит (по его разумению), что вы, мягко выражаясь, не человек.
    Ответ написан
    6 комментариев
  • Нужно ли делать кеширование запросов и как?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я думаю здесь подмена понятий. Автор пишет "кэширует ли БД запросы", а имеет в виду "может ли в принципе эта страшная и непонятная громадина которая называется базой данных в принципе хоть когда-нибудь рабтотать быстро?"
    Все, разумеется, кидаются отвечать на первый вопрос.
    А на самом деле надо отвечать на второй. Да, почти всегда БД работает гораздо быстрее чем ты можешь вообразить и ничего кэшировать не нужно. Если вдруг стало работать медленно... впрочем, об этом ниже.

    Нужно ли делать кеширование запросов
    Вот в такой формулировке, взятой с потолка, "а не закэшировать ли мне запросы к базе данных*" - Нет, не нужно.

    и как?
    Очень просто.
    Три простых шага:
    1. Понять, устраивает ли тебя производительность приложения. Если устраивает, то все оставить как есть.
    2. Если не устраивает, освоить профайлинг. Если это слово не упоминается в вопросе про производительность или кэширование, то вопрос можно сразу удалять. потому что он заведомо взят с потолка и не имеет смысла. По сути, профайлинг - это замер скорости выполнения отдельных участков кода для поиска узких мест - т.е. таких участков кода, которые тормозят всю программу. Это можно делать и вручную, и с помощью различных готовых инструментов. Только по результатам профайлинга, который показал конкретную причину тормозов, то самое узкое место (его еще называют bottleneck, "бутылочное горлышко"), можно приступать к оптимизации. Не кэшированию!
    3. Если профайлинг показал, что проблема в конкретном запросе к БД, приступаем к его оптимизации. Чаще всего достаточно добавить индекс или донастроить сервер.
    4. Только если все другие способы не помогли - занимаемся кэшированием. Но перед этим сначала решаем Вторую Важнейшую Проблему Информационных Технологий - инвалидации кэша. Поскольку закэшировать - это ерунда, каждый дурак сможет. Самая главная проблема не в том, как данные положить в кэш, а как и когда их оттуда удалять.
    Ответ написан
    Комментировать
  • Как лучше загружать трекеры и рекламные скрипты в эпоху AdBlock?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    При использовании SPA все внешние скрипты-инициализаторы контента должны быть ВНУТРИ SPA и никаких внешних загрузок!

    За версионностью и корректностью их работы внутри SPA - также следите Вы (обновился внешний->сохранили к себе->проверили->обновили сборку SPA).

    Если речь про контроль загрузки внешнего контента (скриптами-инициализаторами), то здесь придётся создать дополнительно ещё и верификатор доступности внешнего ресурса, загружаемого основным скриптом (из SPA). Это можно сделать через подписку на события отслеживания ajax-соединений (и других необходимых).
    Например, так.
    Ответ написан
    7 комментариев
  • Есть решения по проверке орфографии?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Используйте regex и проверяйте на невалидные цепочки слов и знаков препинания внутри текста перед постингом и нормализуйте токены-разделители.
    2. Проверяйте сами слова на валидные символы (и их цепочки), на ограничение длины и на содержание в стоп-листе.
    источник
    <?php
    $values = array(
        'text???',
        '???text',
        'text???text',
        'text ? ? ? ? ? text'
    );
    
    foreach ($values as $original_value) {
        $value = preg_replace('/([?!.:,;]|\s)\1+/', '$1 ', $original_value);
        echo $original_value . "\n" . $value . "\n\n";
    }
    Результат
    text???
    text? 
    
    ???text
    ? text
    
    text???text
    text? text
    
    text ? ? ? ? ? text
    text ? text

    Вот либа для русского языка: Typograph
    На данный момент типограф умеет...
    Обрабатывать тексты в различных кодировках(требуется iconv).
    Заменять кавычки на ёлочки.
    Склеивать двойные кавычки.
    Заменять знак дефиса или два знака дефиса подряд — на знак длинного тире.
    Заменять знак дефиса, ограниченный с обоих сторон цифрами — на знак короткого тире.
    Заменять множество пробелов или табуляций на один пробел.
    Заменять х в выражениях вроде 10x10 на знак умножения.
    Исправлять неправильную расстановку запятых.
    Разносить неправильно расставленные кавычки.
    Вставлять неразрывный пробел после инициалов, сцеплять инициалы.
    Делать неразрывными названия организаций и аббревиатуры форм собственности.
    Делать неразрывными имя собственное и относящееся к нему сокращение.
    Не разделять 2007 г., ставить пробел, если его нет.
    Сцеплять скобки со словами.
    Заменять 1/2 1/4 3/4 на спецсимволы.
    Следить за тем, чтобы предлоги и союзы не находились в конце строки.
    Следить за тем, чтобы частицы бы, ли, же и т.д. не отрывались от предшествующего слова.
    Форматировать русские денежные суммы, расставляя пробелы в нужных местах.
    Заменять от 3-х до 5-и точек подряд на троеточие.
    Притягивать к слову запятые, отделять пробелом от последующего слова.
    Притягивать к слову восклицательный знак.
    Делать замену для +-.
    Обрабатывать вложенные кавычки.
    Притягивание чисел к знаку умножения.
    Запятые до «а» и «но».
    Притягивание «;» к предшествующему слову.
    Убирает лишние знаки: «??» в «?», «!!!!» в «!!!».
    Правильные апострофы в «LO'Лайт».
    Прямая речь.
    Неразрывные IP-адреса.

    Добавлю ещё, что если есть ограничение на количество символов в объявлении - то сразу лучше ограничить количество слов (2 буквы и более) не несущих смысл (союзы, предлоги и т.д.). Тогда текст объявлений будет намного качественнее для ЛЮДЕЙ (и для поисковиков, конечно)!

    Что такое заспамленность в целом (понятия: водность, тошнота текста и др.): тут
    Онлайн анализ текста: здесь

    Т.е. это должно работать сразу, до принятия объявления системой (т.е., обычно, до его публикации).
    Ответ написан
    5 комментариев
  • Замыкания в чем конкретно разница?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не работает, потому что к тому времени, когда функция onclick будет вызвана, переменная i дойдет до самого конца цикла. И будет использоваться именно это, последнее значение.

    В первом варианте переменная i используется в конкретной итерации, т.е. берется photos[i] и это значение дальше передаётся, а сама переменная i больше не используется, так что в целом пофиг, как там она дальше будет изменяться.

    Ведь в первом варианте вызов addThumbnailClickHandler(thumbnails[i], photos[i]) происходит прямо в цикле, сразу, без промедлений, а не откладывается на потом. В этот момент конкретные значения передаются в качестве параметров. И далее из-за замыкания они так и остаются висеть в памяти и ссылаться на то, что нужно.

    Немного изменим код, и он снова перестанет работать :)
    var i;
    
    var addThumbnailClickHandler = function (thumbnail) {
      thumbnail.addEventListener('click', function () {
        fullPhoto.src = photos[i]; // i === thumbnails.length
      });
    };
    
    for (i = 0; i < thumbnails.length; i++) {
      addThumbnailClickHandler(thumbnails[i]);
    }
    Ответ написан
    Комментировать
  • Где лучше качество кода?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Все плохо
    • Глобальные переменные — зло
    • На лицо некий код, который и с сессией работает и с БД — явное нарушение общепринятных принципов, например SRP
    • $dao как инициализирована? Явно не через конструктор
    • Использование цифры, вот сиди гадай по ней — это плохо, используйте именованную константу. Например 3 — это некий статус для desktop, вот и назовите ее STATUS_DESKTOP, хотя далее...
    • вы обращаетесь к одному методу, который шибко умный — работает с флагами, тем самым нарушая SRP и сам содержит if/else, сделайте просто 2 раздельных метода:
      getMobileOpinionList()
      getDefaultOpinionList()

    • Предикат лучше вынести в отдельный метод isMobileOnly(), тк условия могут поменяться в нем, не будете же везде в if менять по всему проекту
    Ответ написан
    33 комментария
  • Как создать циклическую анимацию на js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Может, лучше без JS сделать средствами CSS?
    @keyframes swing {
      0% {transform: rotate(-15deg)}
      50% {transform: rotate(15deg)}
      100% {transform: rotate(-15deg)}
    }


    Ответ написан
    3 комментария
  • Изучение Node.JS.Что на счёт JS?

    @bqio
    https://bqio.github.io/
    1. Изучить основы JS. тык
    2. Изучить основы NodeJS. тык
    3. Начать создавать свой проект.
    Ответ написан
    1 комментарий
  • Как сделать такой бэкграунд футеру?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вам кажется. Период массовых отказов от картинок в пользу новых и молодежных возможностей CSS давно прошел, если картинка маленькая и удобная - почему нет? Вряд ли она у вас займет половину трафика страницы.
    Ответ написан
    3 комментария
  • Что еще необходимо знать, чтобы стать junior Front-end разработчиком?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    JS это вообще клоака.
    Очередность правильная HTML→CSS→JS
    Правда препроцессоры вперед ногами пошли, их бы после базы, туда же бут и т.д.
    Ну и в процессе грамотность верстальщика надо вытягивать. Это знание языка, правил, ГОСТ-ов оформления доков, сокращений и т.д.
    Ну тут хотя как, многие (как и те, кто верстает только на дивах), думают, что фронтенд это типа бэкенда, только на JS. Т.е. если разобраться в JS и фрейморках, то в принципе можно проскочить попервой все, что выше, но в какой-то момент все равно вернешься.

    З.Ы.: я как всегда удачно зашел, это одна из моих любимых тем. Чуть шире, чем тут, я ее раскрыл в статейке.

    Сам я с удовольствием верстаю уже порядка 8–10 лет.

    З.Ы.Ы.: Как показывает практика, многие, кто встает на путь истинный и учится верстать нормально, сдает позиции по принципу «ну его туда-сюда».
    Ответ написан
    8 комментариев
  • Как сделать чтобы при нажатии на кнопку затемнялась вся страница сайта?

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

    Ответ написан
    3 комментария
  • Как сделать ленивую загрузку контента?

    Для подгрузки контента надо использовать js, php не подгрузить динамически его
    В js смотришь что пользователь на низ страницы и делаешь ajax запрос на сервер и дополняешь страницу
    Ответ написан
    1 комментарий