• Как сверстать такой треугольник с градиентом у border?

    RAX7
    @RAX7
    Первый вариант svg mask.
    плюсы: не требует js
    минусы: нельзя применить backdrop-filter


    Второй вариант svg clip-path.
    плюсы: можно применить backdrop-filter
    минусы: требует js и желательно ResizeObserver
    Ответ написан
    Комментировать
  • Как правильно и лучше?

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

    Aetae
    @Aetae
    Тлен
    Два блока с border-image - один подложка, второй - заголовок.
    Ответ написан
    3 комментария
  • Как вывести текст на страницу PHP не привязывая PHP скрипт к странице?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Налицо классическая проблема ХУ
    задавая очевидно дурацкий вопрос, надо всегда подробно описывать ситуацию, в которой он возник.
    если причины осмысленные, то решение всегда найдется
    если же нет, то тогда вам помогут переформулировать проблему

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Самое время познакомиться с темной стороной программирования.
    Начинающие вайтишники искренне думают, что программист - это типа такой художник. Берет мольберт, поллитру, кисти и начинает ВАЯТЬ. Потом отходит на шаг, любуется делом рук своих, и снова. Ваять. А потом сразу заказчику, за большие деньги.

    Так вот, в реальности это всё не так.
    Большую часть времени программист не пишет код.
    А пытается разобраться, почему он не работает.

    Так что мы будем сейчас учиться это делать.
    Тем более, что это в принципе несложно.
    Главное не думать, что чем-то поможет сидеть и тупить в свой кодик. И приглашать других людей потупить в него тоже бессмысленно. Потому что причина может быть совсем не в нем. но даже если проблема и в коде, то искать её всё равно надо по-другому.
    В код не надо тупить. Его надо ЗАПУСКАТЬ.
    И выводить промежуточные результаты. Проверять его работу.
    Заранее выяснить, какие должны быть значения у переменных, и проверять их на каждом этапе.
    Где не совпадут - там и проблема.
    В идеале IDE сама покажет содержание всех переменных при трассировке, но если пишешь код в блокнотике, то даже тупо писать var_dump($bar1,$var2,$var3...); и смотреть что там лежит.
    Условия проверять еще проще, тупо echo 'зашли в условие if (!empty($user))';
    И если лежит не то, или эхо не выводится - вот тогда уже смотреть в код и думать, почему так получилось.

    В частности, при авторизации надо проверить две вещи:
    1. Находится ли юзер по логину
    2. если находится, то проверить корректность хэша. Для этого при регистрации надо вывести полученный через password_hash пароль и записать на бумажке
    потом запросить сохраненный из БД и сравнить

    Кроме того
    Разумеется, отладка невозможна без сообщений об ошибках.
    В половине случаев РНР человеческим голосом сообщает в чем проблема.
    Поэтому всегда, в любом окружении должно стоять error_reporting(E_ALL);
    плюс на домашнем компике полезно прописать ini_set('display_errors', 1); чтобы сразу видеть ошибки на экране.
    На боевом сервере разумеется поставить 0 вместо 1, и добавить ini_set('log_errors', 1);

    У меня только один вопрос.
    Какой смысл вообще делать парольную защиту, если любой придурок сможет спокойно авторизоваться через SQL инъекцию?
    Ответ написан
    9 комментариев
  • Можно ли встраивать gif в косоль js?

    Seasle
    @Seasle Куратор тега JavaScript
    Можно
    (() => {
    	const gif = 'https://c.tenor.com/dIJjH_qEMpUAAAAC/sully-shock-monsters.gif';
    	const width = 3;
    	const space = ' '.repeat(width);
    
    	console.log(`%c${space}`, `font-size: 158px; background-image: url(${gif}); background-position: center; background-repeat: no-repeat;`);
    })();
    Ответ написан
    Комментировать
  • В VSC установлен Prettier для форматирования, а в проекте Nuxt.js - ESLint - и они конфликтуют, как настроить?

    bingo347
    @bingo347
    Crazy on performance...
    https://www.npmjs.com/package/eslint-plugin-prettier

    А вообще, но prettier взялся сразу за много языков, но не один не делает хорошо, имхо. При этом он имеет слишком мало возможностей по конфигурации для подобного инструмента. Тот же eslint (возможно где-то с плагинами) полностью покрывает все возможности prettier, позволяя все гибко настроить под договоренности в конкретной команде. Но это все лишь мое мнение.
    Ответ написан
    1 комментарий
  • Какой стек выбрать для бэкэнда?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Началось в колхозе утро.
    Очередной юный мечтатель ковыряет в носу и рассуждает, из чего бы сделать лопату, которой грести денежки.
    При том что из активов у него только то, что из носа и наковырял.

    Нагрузок у него нет, веб-проекта, в котором будет функционал по типу как в Reddit - нет, пользователей нет, рассылок нет, нагрузки даже в 10 пользователей в сутки нет. Как и объяснения, почему пользователи вдруг повалят именно на этот проект.
    Но зато мы уже стррррашно озабочены проблемами с производительностью.
    Поэтому мы убьём в 10 раз больше времени, поднимая на каком-нибудь экзотическом языке прототип, чтобы убедиться что этот проект таки никому не нужен.
    Ответ написан
    4 комментария
  • Как получить предыдущее состояние массива в watch?

    0xD34F
    @0xD34F Куратор тега Vue.js
    watch: {
      cloneItems(old, cur) {
        this.prevItems = old;
      },

    Вот что бывает, когда не читаешь документацию.
    Параметры местами перепутаны - сначала новое значение, потом старое.

    computed: {
      cloneItems: () => this.items.slice(),

    Вот что бывает, когда не знаешь язык.
    Контекст внутри cloneItems - это не экземпляр компонента. Заменить стрелочную функцию на обычную.

    prev items:
    <div v-for="item in items" :key="item">

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

    this.items = [...this.items, Date.now()];

    Нет необходимости создавать новый массив, достаточно делать push - вызовы мутирующих методов тоже отслеживаются.

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

    php666
    @php666
    PHP-макака
    Короче, я боюсь, что, выучив слишком много всего, стану отпугивать работодателей своей продвинутостью.
    лол
    40 лет, а мыслит как 18-и летний юноша-максималист
    выучит он "слишком много всего"
    ты выучи сначала
    потом приходи сюда
    когда ты "слишком много всего" выучишь, тебе минимум будет 45 лет

    Но вот думаю: А не слишком ли "крутым" я стану?
    на первом же собеседовании тебя сотрет в порошок 25-30 летний чувак с опытом и покажет твое истинное место.
    это не оскорбления.
    это твое будущее.
    Ответ написан
    8 комментариев
  • Стоит ли идти в NoCode разработку?

    xenon
    @xenon
    Too drunk to fsck
    Общее правило: Если технологию можно легко освоить в короткое время, тогда, даже если такая технология будет в самом деле ценной, все равно, в ней будет слишком много специалистов, высокая конкуренция и низкие доходы. (например, Uber. Стать таксистом несложно, зарабатывают таксисты немного.)

    Либо же технология в принципе будет мало востребована (каждый, кто хочет, сам себе может пожарить яичницу и заварить растворимый кофе, специалисты, освоившие эту технологию не слишком востребованы)
    Ответ написан
    1 комментарий
  • Могут ли комментари влиять на скорость загрузки файла стилей (CSS) или JS?

    @asmodeus13th
    Я делаю сайт родственнице

    Всё зависит от родственницы. Если двоюродная, то влияет на скорость очень сильно.
    почему там комментарии или код типо он мне нужен

    Можешь код вообще не писать. Тогда точно будет быстро работать.
    Ответ написан
    Комментировать
  • Как подружить pagespeed и yandex.metrika?

    Sanes
    @Sanes
    Пусть ваш бизнес выбирает между попугайчиками и параноей неполных данных.
    Ответ написан
    Комментировать
  • Почему нужно гуглить на английском?

    Adamos
    @Adamos
    Насколько я вижу, ваш вопрос в последнее время взялись активно порешать автоматически.
    Веб завален сайтами, представляющими собой корявый машинный перевод StackOverflow и других популярных англоязычных профессиональных сайтов.
    Понять, что они там напереводили, зачастую сложнее, чем просто прочесть оригинал.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при удалении записей остальные id записей начинались с 0?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак не делать .
    Этот вопрос очень часто задают новички, от непонимания базовых принципов

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

    Либо тебе это поле вообще не нужно, и его надо убрать, либо просто оставь его в покое и никогда не трогай его руками
    Ответ написан
    1 комментарий
  • Как удалить массив в массиве по конкретному значению?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Используем array_filter:
    <?php
    $results = [
    	['order_id' => 'first', 'id'=>1],
    	['order_id' => 'second', 'id'=>4],
    	['order_id' => 'third', 'id'=>7]
    ];
    
    $filtered = array_filter(
    	$results,
    	function($el) {
    		return $el['id'] != 4;
    	}
    );
    
    var_export($filtered);


    Share PHP code
    Ответ написан
    Комментировать
  • Алгоритм разбитить массив на группы по датам?

    webdisigner
    @webdisigner
    // Допустим у вас интернет магазин секс игрушек
    
    
    var arr = [
      
      {name: 'вазелин', date: Date.now() - 5000000},
      {name: 'секс-игрушка: Катя', date: Date.now() - 70000000},
      {name: 'секс-игрушка: Елена Беркова', date: Date.now() - 9999999},
      {name: 'секс-игрушка: Боря Моисеев', date: Date.now() - 9999999},
      {name: 'секс-игрушка: Максим Галкин', date: Date.now() - 300000000},
      {name: 'дилдо обыкновенный', date: Date.now() - 300000000},
      {name: 'дилдо черный XXL', date: Date.now() - 66666666},
      {name: 'вазелин со вкусом банана', date: Date.now() - 50000000},
      {name: 'анальные шарики', date: Date.now() - 5000000}
      
      
    ]
    
    
    arr = arr.reduce((x,y)=>{
            let d = new Date(y.date).toLocaleDateString();
            x[d]? x[d].push(y) : x[d] = [y]
            return x
      }, {})
    Ответ написан
    Комментировать
  • Как такое сверстать?

    RAX7
    @RAX7
    Держи, немного поправил один из своих старых набросков.

    Принцип работы примерно, как описал Максим Морев в своем ответе.
    Ответ написан
    2 комментария