• Где смотреть современные интересные сайты?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    Ответ написан
    Комментировать
  • Как быстро и эффективно прокачать скилы в верстке?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    танцы с бубном... прокачать навыки верстки максимально быстро и при этом достаточно углубленно... Главное - результат и время.


    Был в похожей ситуации. Могу сказать, что очень полезно порисовать картинки с помощью CSS (если не сталкивались - сходите на CodePen, там это дело очень полюбили). Звучит глупо, но тем не менее такая деятельность помогает очень быстро освоить те свойства CSS, которые обычно все гуглят и не понимают. Это своеобразные "концентрированные" задачи на верстку. Если в одном макете 5 сложных моментов, то тут в одной картинке - 25.
    Ответ написан
    3 комментария
  • Можете рассказать о минусах дизайна и взаимодействий с постом в блоге?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Расскажите о минусах и плюсах

    Из плюсов - идея интересная, выглядит симпатично.
    Из минусов (в самом посте):
    • Шрифт мелкий, строки длинные. На 15-дюймовом FullHD - сложно читать. Я бы увеличил хотя бы до 16-18px.
    • Контрастность тоже не самая лучшая. Серый текст по белому фону заставляет напрягать глаза.
    • Вертикальный ритм немного странный. Может быть над заголовками добавить отступы?
    • Картинки хочется сделать побольше. Хотя может быть и нет. Но отделить их отступами точно стоит.
    • Не хватает информации об авторе, даты написания статьи (может все уже устарело на 10 лет).
    • Иконки для расшаривания в социальных сетях тоже можно добавить.
    • Так и хочется внизу увидеть теги, комментарии, похожие посты и.т.д. Их там нет, а очень хочется.
    • Эффекты при наведении мыши и фокусе на элементы нужно добавить.

    Скролл очень сильно лагает, так что навигацию оценить сложно. Адаптивность отсутствует. Определенно стоит подумать про сценарии взаимодействия с сайтом в целом. Если это - блог, то там точно должно быть (люди к этому привыкли и ждут этого):
    • Список статей, который можно быстро пролистывать.
    • Поиск по статьям. Если материалов мало, то по крайней мере поиск по тегам или категориям.
    • Страницы авторов, или по крайней мере хоть какая-то о них информация, контакты.

    и.т.д.

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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Является ли желтая квадратная форма в конце анимации видоизмененной кнопкой или же это совершенно другой элемент разметки?

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


    С такими анимациями можно долго играться, самое главное - проверить в конечном итоге кроссбраузерность. А то в хроме и FF работает, а в каком-нибудь IE всякое может случиться.

    P.S.: Но в целом - я голосую за реализацию таких вещей целиком на JS. Практика показывает, что в проектах с такими анимациями очень быстро собирается большое количество одновременно анимирующихся значений у большого количества элементов, которые нужно синхронизировать между собой. На CSS голова лопнет все это делать. И да, чем больше всего меняется в CSS-анимациях в единицу времени, тем выше шанс найти какой-нибудь редкий баг и долго ломать себе голову в поисках проблемы. Лучше уж взять какую-нибудь библиотеку вроде anime.js или любимый многими GSAP и использовать их.
    Ответ написан
    Комментировать
  • В чем разница двух кодов js?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Почему один код рабочий, другой нет?

    Потому, что не blur, а onblur.
    Ответ написан
    2 комментария
  • Может ли CSS файл содержать вредоносный код?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Например, если подключить так:
    <link rel="stylesheet" href="http://evil.com/styles.css">


    На CSS можно сделать недокейлоггер, который даст информацию о том, что пользователь начинает вводить (повторы одного и того же символа уже не срабатывают).

    Можно отсылать себе информацию о том, куда пользователь нажимает - ссылки, чекбоксы, даже продолжительность наведения мыши на тот или иной объект. Можете посмотреть примеры вот тут. Я сам не все идеи оттуда проверял, но те, что проверял - работают. Собственно эту всю фигню очень любят в письмах использовать, но никто не мешает и на сайте внедрить.

    Можно издеваться над "отключением" кнопок (pointer-events к примеру поменять) или вообще скрыть какие-то важные блоки и пользователи не смогут нормально пользоваться сайтом. Для какого-нибудь магазина - это полный фейл как вы понимаете. Причем, в отличии от полного дефейса, пользователи могут даже не понять, что что-то не так.
    Ответ написан
    Комментировать
  • Оценить дизайн начинающего дизайнера?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    По ссылке только одна страница, так что только про нее:
    - Не понятно под какое это разрешение экрана, варианта для телефонов там точно нет. Сейчас без этого вопроса никак, особенно если дизайн предполагает перестановку блоков на маленьких экранах. Разрешение картинки намекает, что это было для FullHD, но на 15 дюймах - все огромное и глаза разбегаются. Стоит над этим моментом поработать.
    - Сочетание разных шрифтов с засечками и без в случайном порядке - не самая лучшая идея.
    - Белый по бежевому не читается.
    - Контент местами плохо воспринимается.
    - Иконки все разные по стилю.
    - Отступы везде разные.
    - Кнопка "call to action" внизу совершенно не видна.
    и.т.д.

    что нужно подтянуть в знаниях/практике

    Основы. Возможно вы как-то через них проскочили, но стоит вернуться и разобраться. Почитайте про "дизайн для недизайнеров" (книжка так называется), она может подтолкнуть в нужную сторону.

    на что обратить внимание

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    blockquote {
        overflow: auto;
    }
    Ответ написан
    Комментировать
  • Как адаптировать изображение CSS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    По всей видимости вам подойдет свойство object-fit. Для старых браузеров понадобится полифилл, например этот.
    Ответ написан
    Комментировать
  • Как в linux вести лог команд?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    но мне нужно, чтобы сохранялся не только результат выполнения, но еще дата и время

    Можно например так:
    echo $(date) $(node -v) >> test.log
    При повторных выполнениях будет формироваться лог вроде такого:
    Thu Oct 18 20:13:31 MSK 2018 v10.11.0
    Thu Oct 18 20:13:32 MSK 2018 v10.11.0
    Thu Oct 18 20:13:33 MSK 2018 v10.11.0

    Форматировать можно по вкусу - загуглите про echo. Для удобства можно сделать alias, если не сталкивались - можете почитать о том, как ими пользоваться.
    Ответ написан
    Комментировать
  • Что значит HTTP-Based Public Key Pinning на Тостере?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    HTTP Public Key Pinning (HPKP) - это технология, позволяющая снизить риск MITM-атак, почитать можно на MDN.
    Ответ написан
    Комментировать
  • Не могу понять задание. Что имел в виду автор[2.0]?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    для массива простых чисел я не смог найти двоичных чисел, которые были бы симметричны

    Может быть я чего-то не догоняю, но 17 в десятичной - это 10001 в двоичной. Симметрично, однако.
    Ответ написан
    Комментировать
  • 3D рендер в WEB?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Добавлю еще пару слов про эту задачу в целом (не про сайт по ссылке в вопросе, а вообще). Если нужно делать такую статичную штуку с выбором цвета стен, обоев, полов и.т.д., особенно если нужно дать пользователю возможность выбирать свой вариант, то можно поиспользовать SVG. Это немного внезапно, но тем не менее. Основная часть комнаты, тени и рефлексы - это обычная картинка с прозрачностью в нужных местах (ее можно встроить в SVG через тег image), стены, полы - это простые прямоугольники, на которые наложены 3D-трансформации. Дальше их можно заливать как угодно - цветами, текстурами... и не нужно будет ломать себе мозг вопросом о том, как на лету повернуть "нормальную" текстуру и сделать из нее пол с перспективой. Мебель заливается цветом не намного сложнее - делается SVG-маска в форме предмета мебели и применяется фильтр hue-rotate. Таким образом можно "на коленке" соорудить работающий вариант такой презентации.
    Ответ написан
    Комментировать
  • Как правильно ходить на собеседования?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    На сколько так правильно делать?

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

    Учитывая тот факт, что (в жизни всякое бывает) может я захочу в будущем вернуться к данной вакансии.

    По моему опыту если разойтись с работодателем спокойно, до оформления каких-либо бумаг, то через некоторое время вполне можно вновь встретиться. У меня есть несколько компаний, с которыми мы где-то раз в год пересекаемся, не подходим друг другу и сохраняем контакт на будущее. Главное тут - наличие взаимного уважения. Всякие казусы случаются в жизни и отказаться можно по тысяче причин. А попросить указать на свои ошибки, как и предоставить свой отзыв - это неплохая мысль. Особенно если собеседующий вас человек был адекватен. У меня даже было такое, что молодой владелец небольшой компании поблагодарил за предоставленный отзыв и обмен опытом в процессе общения. До этого случая я думал, что такого вообще не бывает, а он восстановил мою веру в человечество. Так что смотрите сами, никто вас ругать ни за что не будет.

    P.S.: А по поводу "домашних заданий" в комментариях верно говорят, зачастую их пачками раздают и вероятность положительного исхода стремится к нулю.
    Ответ написан
    Комментировать
  • Качество работы штатного программиста. Как оценивать?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Что посоветуете? Брать тестера? Менять разработчиков? Менять процессы?


    На мой взгляд (личный опыт, могу ошибаться) полезно поговорить с разработчиками и объяснить им, что есть задачи бизнеса. Они не в вакууме код пишут. Есть пользователи программного продукта, которым нужно дать возможность решать какие-то свои задачи с его помощью. Это - их главная работа, а не формальное выполнение тасков из джиры. Пока мышление у них не перестроится вы можете нанимать тестеров, менять процессы, но подход "и так сойдет" не искоренится.

    А как придет понимание, что есть пользователи и нужно о них заботиться, уже можно говорить о внедрении планок качества или об автоматизации тестирования. Можно начать не с хардкорного TDD, а с более мягкого подхода, соответствующего этой идее: взять что-нибудь вроде codecept.js и по-быстрому описывать сценарии взаимодействия пользователя с системой. Сначала основные, которые обязательно должны работать, потом альтернативные, где обработка ошибок происходит. Собственно и изначальное ТЗ формулировать в виде сценария взаимодействия. Можно отвести под тесты отдельный сервер (ненужное железо всегда можно где-нибудь найти). Потом, как привыкнут, попробовать покрывать все юнит тестами или еще что-то внедрять, своим примером показывая, что это и правда может экономить время на поиск багов или давать какие-то еще полезности. Иными словами стоит сначала перестраивать мышление, а потом уже улучшать технические моменты.
    Ответ написан
    Комментировать
  • Над чем нужно работать, что улучшать?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Не любитель реакта, поэтому про него не буду говорить. А вот CSS покритикую:
    - Стоит прикрутить какой-нибудь препроцессор, поиспользовать вложенность (структура лучше будет видна) и вынести в человеко-понятные константы все, что выносится - цвета, размеры и.т.д. Там достаточно повторений.
    - Стоит поделить все на отдельные файлы-компоненты.
    - Стоит получше подумать над общим разбиением CSS на компоненты. Есть конечно разные подходы, но отдельные кнопки, или группа из нескольких кнопок, или чекбоксы - это универсальные штуки на весь проект. Какой смысл их привязывать к какому-то сайдбару или калькулятору?
    - Про адаптивность вы сами написали.
    - Стили для :focus отсутствуют. Клавиатурой не получится пользоваться.
    - Еще мне кажется, что у сайдбара отступ внизу должен быть (дизайн не видел, но имхо есть). И что cursor: pointer у кнопок должен быть.

    З.Ы.: Еще есть мысль, что вариант "все" там не нужен. "Все" должны показываться при отсутствии фильтров. Но без анализа ЦА не буду утверждать, может там к к такому варианту люди привыкли.
    Ответ написан
    3 комментария
  • Как сделать масштабирование svg по аналогии с background-size: cover;?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Попробуйте добавить preserveAspectRatio="xMidYMid slice" к SVG с этими полигонами.
    Ответ написан
    1 комментарий
  • Что лучше использовать для анимаций css или js? И почему?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    но которую можно реализовать и с помощью css, и с помощью javascript...
    ваше мнение хотел услышать

    Мне самому нравится делать все на CSS, но... Если анимация должна быть интерактивной и нужно ее останавливать в процессе, откатывать в изначальное положение и.т.д., или некоторые ее части зависят от данных (в широком смысле - это и движение по сложной траектории, и построение графиков и.т.д.) и их проще рассчитать скриптом, чем подбирать коэффициенты в CSS keyframes, то JS будет лучшим выбором. Если это последовательность мало связанных между собой изменений, то опять же скрипты почти всегда будет проще реализовать. Если речь идет о CSS-анимациях с фильтрами (особенно SVG-фильтрами), то можно влететь в очень сильные проблемы с производительностью на слабом железе. И никакие хаки с GPU тут не помогут - все равно будет тормозить. В такой ситуации может иметь смысл не просто писать на JS, но и подключить WebGL и все делать руками на шейдерах.

    В остальных случаях стоит смотреть по ситуации - разные :hover / :focus эффекты обычно легко реализуются на CSS, и, если это так, то зачем что-то придумывать? CSS в последнее время очень даже неплох. Но если, например, в проекте вся анимация делается на JS, то может иметь смысл продолжать делать так же, сохраняя единообразие в коде.
    Ответ написан
    Комментировать
  • Как грамотно организовать бойлерплейт для веб-разработки?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Как грамотно организовать

    Не знаю, как грамотно, поэтому поделюсь, чем сам пользовался. Не самый удобный, но рабочий вариант:
    • есть репозиторий с типовой структурой проекта и этими конфигами (можно даже на своем сервере захостить).
    • у себя локально в типовом проекте он добавляется с помощью git remote add.
    • после обновления конфигов там, с помощью git fetch + git log + git cherry-pick нужные изменения в них добавляются в текущий проект.


    Недавно начал играться с локальным GitLab и возникла мысль автоматизировать этот процесс там, чтобы одной кнопкой все делалось, но что-то пока ничего путного из этого не вышло.

    Была также идея иметь полностью одинаковые конфиги везде (символическими ссылками из одной директории во все проекты добавлять), а значения entry и output, о которых вы говорите, вынести в какой-то локальный для каждого проекта конфиг. Но как-то идея не прижилась - уж слишком она завязывается на расположение проектов и файлов относительно друг друга.
    Ответ написан
    1 комментарий